画像の黒部分の色調度合いでアルファ値を変えたい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
KRNKRS

画像の黒部分の色調度合いでアルファ値を変えたい

#1

投稿記事 by KRNKRS » 6年前

タイトルの通り、画像内のある場所の黒色の色調度合いでファルファ値を変更させたいです。

どういうことかというと、以下例。

・画像のある場所の黒色部分の色調:255 → その部分はアルファ値:0 (完全透明)
・画像のある場所の黒色部分の色調:200 → その部分はアルファ値:55
・画像のある場所の黒色部分の色調:155 → その部分はアルファ値:100
・画像のある場所の黒色部分の色調: 55 → その部分はアルファ値:200
・画像のある場所の黒色部分の色調: 0  → その部分はアルファ値:255(完全不透明)

と言ったように、黒部分の色調と反比例するみたいにしたいです。

イメージとしては、
1.読み込んだ画像ハンドルを元に、ピクセル単位でその画像の色調を取得する。
2.色調を取得して、それを元にそのピクセル座標のアルファ値を決定、変更する。
3.結果、グラデーションのようになめらかな画像が出来る。
※吉里吉里をやったことがある方は、トランジションを行うときに使用する「ルール画像」をイメージしていただけるとわかりやすいかと思われます。

色々と調べてみたのですが方法が見当たらず、こちらで質問させて頂きました。

こういった方法は可能でしょうか?

KRNKRS

Re: 画像の黒部分の色調度合いでアルファ値を変えたい

#2

投稿記事 by KRNKRS » 6年前

すいませんなんか馬鹿な事いってました。
黒色の色調なんてありませんね。RGBガン無視してますね。

ともかくやりたいことは同じです。黒の度合いによってアルファ値を決定したいです。
よろしくお願いします。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: 画像の黒部分の色調度合いでアルファ値を変えたい

#3

投稿記事 by softya(ソフト屋) » 6年前

KRNKRS さんが書きました:すいませんなんか馬鹿な事いってました。
黒色の色調なんてありませんね。RGBガン無視してますね。

ともかくやりたいことは同じです。黒の度合いによってアルファ値を決定したいです。
よろしくお願いします。
黒の度合いと言うのが何を言いたいのか分からないです。
黒→灰色→白って言うのが黒の度合いだと思いますが、RとGとBの明るさが同じと言うことで良いのでしょうか?
それだと普通に絵にも混じりそうな気がするんですけど。

>※吉里吉里をやったことがある方は、トランジションを行うときに使用する「ルール画像」をイメージしていただけるとわかりやすいかと思われます。
これも、そうなっているんでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
usao
記事: 1569
登録日時: 6年前

Re: 画像の黒部分の色調度合いでアルファ値を変えたい

#4

投稿記事 by usao » 6年前

>黒の度合い
カラー画像をグレースケール化したときの輝度みたいなのを指しているのかと思います.

やりたいことが以下の点について不明瞭に思います.
・目的は?(そういうふうにして描画したい or そういう(α値を持てる形式の)画像ファイルを作りたい)
・画像をどうやって扱うのか?(何らかのライブラリ使用 or 完全に自前の実装)

M.R

Re: 画像の黒部分の色調度合いでアルファ値を変えたい

#5

投稿記事 by M.R » 6年前

おそらく吉里吉里のようなマスクデータを使った描画をしたいという事ですね。

シンプルには
 RGB の画像に グレースケールの階調をアルファに見立てて RGBA の画像を作成
 グレースケール(A) + 画像(RGB) -> 描画する画像(RGBA)
という感じで実現は可能だと思いますが

最適化したいのならば実行環境などが分からないと回答もしにくいのではないでしょうか

KRNKRS

Re: 画像の黒部分の色調度合いでアルファ値を変えたい

#6

投稿記事 by KRNKRS » 6年前

内容不足ですみませんでした。

>カラー画像をグレースケール化したときの輝度
そうですそれです輝度です!
それを言いたかったのですがこの単語が出てこず、
なんて言って良いか悩んだ末にこのような変な解釈を生む言い方になってしまい申し訳ありません。

>(吉里吉里について)これも、そうなっているんでしょうか?
見た目的なイメージの例なので実際にそうなっているかどうかはわからないです。

>やりたいことが以下の点について不明瞭に思います.
<やりたいこと>
すでに用意してある「.png」画像ファイルをグレースケール化したときのピクセル座標の輝度を元に、
そのピクセル座標のアルファ値を変えた画像を描画させたいです。

以下修正した例(明るければ明るいほど不透明)

・輝度:255 → その部分はアルファ値:255 (完全透明)
・輝度:200 → その部分はアルファ値:200
・輝度:155 → その部分はアルファ値:155
・輝度: 55 → その部分はアルファ値:55
・輝度: 0  → その部分はアルファ値:0(完全不透明)

描画はDXライブラリを使用して描画させたいです。

KRNKRS

Re: 画像の黒部分の色調度合いでアルファ値を変えたい

#7

投稿記事 by KRNKRS » 6年前

すいません誤返信してしまいました。

・輝度:255 → その部分はアルファ値:255 (完全透明)
・輝度:200 → その部分はアルファ値:200
・輝度:155 → その部分はアルファ値:155
・輝度: 55 → その部分はアルファ値:55
・輝度: 0  → その部分はアルファ値:0(完全不透明)

  ↓

・輝度:255 → その部分はアルファ値:255 (完全不透明)
・輝度:200 → その部分はアルファ値:200
・輝度:155 → その部分はアルファ値:155
・輝度: 55 → その部分はアルファ値:55
・輝度: 0  → その部分はアルファ値:0(完全透明)

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: 画像の黒部分の色調度合いでアルファ値を変えたい

#8

投稿記事 by softya(ソフト屋) » 6年前

輝度でアルファ値を変えたいんですね。
GIMPでアルファチャンネル付きの画像を作ったほうが早そうですが、それではダメなのででしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
みけCAT
記事: 6247
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: 画像の黒部分の色調度合いでアルファ値を変えたい

#9

投稿記事 by みけCAT » 6年前

DXライブラリならSoftImage関連の関数でできると思います。
ただ、libpngなどであらかじめ前処理で画像を用意してはダメなのですか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

KRNKS

Re: 画像の黒部分の色調度合いでアルファ値を変えたい

#10

投稿記事 by KRNKS » 6年前

返信有難う御座います。

>アルファチャンネル付きの画像を作ったほうが~~~
アルファチャンネルがわからなかったのでぐぐってきました。
まるほどこのようなものがあったのですか! 知りませんでした。便利そうですね。
GIMPは持っているので試してみたいと思います!

     ↓30分後

うおおおおおおおおお!! 出来たあああああああ!!
ありがとうございます! 何とか形に出来ました!
なるほどアルファチャンネルというものがあったのですね。
無事解決しました!
ありがとうございました!

閉鎖

“C言語何でも質問掲示板” へ戻る