質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Photoshop

Photoshopとは、アドビシステムズ(株)が開発した画像編集のソフトウェアです。 イラストレーターや印刷業界などで幅広く使われている他、初心者や一般向けの写真編集用に開発されたソフトもあります。 専用に開発されたフィルターやプラグインを追加すると、機能を拡張することができます。

Illustrator

Illustratorは、アドビシステムズ(株)が開発した描画ツールソフトです。 イラスト製作やロゴタイプ、広告作成時などのデザインツールとして、さまざまな分野のクリエーターに愛用されています。 プラグインの中にCADや3DCG機能の拡張ができるものがあります。 特に広告作成などの印刷業界では、トップクラスのシェアを誇っているソフトです。

ImageMagick

ImageMagickとは、画像の表示や操作を行うオープンソースのソフトウェアです。プログラムはCで書かれており、GIFやJPEG、PDFなど画像ファイルフォーマット100種類以上に対応しています。

GIMP

画像編集、加工ソフト

Inkscape

Inkscape(インクスケープ)はオリジナル画像やオリジナルロゴの作成、写真の加工が出来るソフトです

Q&A

解決済

3回答

5870閲覧

見た目の色を変えずに、画像を透過させるには?

takotakot

総合スコア1111

Photoshop

Photoshopとは、アドビシステムズ(株)が開発した画像編集のソフトウェアです。 イラストレーターや印刷業界などで幅広く使われている他、初心者や一般向けの写真編集用に開発されたソフトもあります。 専用に開発されたフィルターやプラグインを追加すると、機能を拡張することができます。

Illustrator

Illustratorは、アドビシステムズ(株)が開発した描画ツールソフトです。 イラスト製作やロゴタイプ、広告作成時などのデザインツールとして、さまざまな分野のクリエーターに愛用されています。 プラグインの中にCADや3DCG機能の拡張ができるものがあります。 特に広告作成などの印刷業界では、トップクラスのシェアを誇っているソフトです。

ImageMagick

ImageMagickとは、画像の表示や操作を行うオープンソースのソフトウェアです。プログラムはCで書かれており、GIFやJPEG、PDFなど画像ファイルフォーマット100種類以上に対応しています。

GIMP

画像編集、加工ソフト

Inkscape

Inkscape(インクスケープ)はオリジナル画像やオリジナルロゴの作成、写真の加工が出来るソフトです

0グッド

1クリップ

投稿2015/04/30 23:29

編集2015/05/07 10:09

白色背景についての、見た目を保ったまま png を透過させたいのですが、どんな方法がありますでしょうか。
ひとまず、手法、言語、ツール等は問いません。ただ、バッチ処理ができると、嬉しいです。
以下、状況です。

スキャンした印鑑の印影画像(赤)があります。白色部(紙)を透過させることは、あまり難しくはありません。選択して、透過色に設定します。
ところが、この画像を文字等に重ねると、ある問題が生じます。
0. (軽微な問題) 抜ききれなかった白色部が上書きされる
0. 印鑑で押印した場合、下の文字が見える(半透明)が、画像を重ねてしまうと、消えてしまう
どちらも、根本は同じ問題で、透過の設定が不十分であることです。
要するに、トーンカーブで紙は完全に白にしておいて、明度や輝度からアルファチャンネルを作ればよいのでしょうが、適当な方法を探すことができませんでした。
【Photoshop】写真の影を使った透過 / 明度からアルファチャンネル作成
透明度を計算してみよう / 黒と白の上にアルファ合成された色からの元の色と不透明度の計算ツール
のようなこと(後者は少し違いますが)が行えればよいと思っています。ただ、印字された時の色は、できるだけ保ちたいです。

よろしくお願い致します。

まず png ファイルを ppm ファイルにしておき、以下のようなプログラムで、ppm ファイルから 色情報の ppm と、アルファチャンネルの pgm を生成、最後に、それらを結合して透過 png を生成…としてみることはできました。
もっといい方法があれば、教えて下さい。

lang

1filename="a.png" 2base=`basename $filename .png` 3pngtopam $filename | pamtopnm -plain > ${base}.ppm 4./pnmalpha ${base}.ppm ${base}_col.ppm ${base}_alpha.pgm 5pnmtopng -force -alpha=${base}_alpha.pgm ${base}_col.ppm > ${base}_trans.png

lang

1#include<iostream> 2#include<fstream> 3#include<algorithm> 4 5int main(int argc, char **argv) { 6 if (argc < 4) { 7 std::cout << "too few arguments" << std::endl; 8 std::cout << "usage: src.ppm dst.ppm alpha.pgm" << std::endl; 9 return 1; 10 } 11 12 const std::string magic_ppm = "P3", magic_pgm = "P2"; 13 std::string magic; 14 std::ifstream ifs(argv[1]); 15 std::ofstream ofs_color(argv[2]), ofs_alpha(argv[3]); 16 int w, h, max_val; 17 int r, g, b, min_rgb; // current val 18 int nr, ng, nb, na; // new val 19 20 if (!ifs || !ofs_color || !ofs_alpha) { 21 std::cerr << "file open error" << std::endl; 22 return 1; 23 } 24 25 ifs >> magic; 26 if (magic != magic_ppm) { 27 std::cerr << "input file format error" << std::endl; 28 return 1; 29 } 30 ifs >> w >> h; 31 ifs >> max_val; 32 33 ofs_color << magic_ppm << std::endl; 34 ofs_color << w << " " << h << std::endl; 35 ofs_color << max_val << std::endl; 36 37 ofs_alpha << magic_pgm << std::endl; 38 ofs_alpha << w << " " << h << std::endl; 39 ofs_alpha << max_val << std::endl; 40 41 for (int i = 0; i < h; ++i) { 42 for (int j = 0; j < w; ++j) { 43 ifs >> r >> g >> b; 44 min_rgb = std::min(r, std::min(g, b)); 45 if (min_rgb == 0) { 46 na = max_val; 47 nr = r; 48 ng = g; 49 nb = b; 50 } else if (min_rgb == max_val) { 51 na = 0; 52 nr = max_val; 53 ng = max_val; 54 nb = max_val; 55 } else { 56 na = max_val - min_rgb; 57 nr = (r + na - max_val) * max_val / na; 58 ng = (g + na - max_val) * max_val / na; 59 nb = (b + na - max_val) * max_val / na; 60 } 61 ofs_color << nr << " " << ng << " " << nb << " "; 62 ofs_alpha << na << " "; 63 } 64 ofs_color << std::endl; 65 ofs_alpha << std::endl; 66 } 67 return 0; 68}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

透過だからアルファチャンネルと安易に考えるのはあまり良くないです

Photoshopでレイヤーの合成に乗算という項目がありますが
これは上下の画像のRGBの演算のみで
画像が濃く重なったような効果が作成できます

私は判子などを重ねるときはこれを使用します

乗算のイメージ

これはRGBの各値(0...255)を(0...1)に正規化し
字義通りかけ合わせることによって合成します

ブレンドモードをもったライブラリを使えば
もっと楽にできると思います
ブレンドモードはCanvasにもOPENGLにもあります

技術的には下記が参考になるかもしれません
詳しそうな解説→

投稿2015/08/22 22:17

e-cube

総合スコア284

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takotakot

2015/08/23 00:04

Photoshop ですべての作業が行える時は、おっしゃるような手法で良いと思っています。 それ以外の画像ライブラリを簡易に使う場合や、Acrobat 等で処理するための前処理が必要でした。
guest

0

下に敷く素材が請求書などのように
白地に文字が乗っているようなものであれば、
photoshopで印鑑画像に対して「カラー比較(暗)」などに設定すればよいのでは?

そういうことではなくプログラム的に処理したいということでしょうか。
意図がずれていたらすみません。。

投稿2015/05/01 07:33

Yoh

総合スコア94

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takotakot

2015/05/01 08:11

ありがとうございます。手早く、良い感じのものが出来そうです。 ただ、黒の字の上に押印したとき、重なったところは少し赤く(暗い赤に)なりますよね。 その表現もするには、半透明でないと難しいのではないかと考えています。
guest

0

おもしろそうな課題ですね。ちょっとチャレンジしてみるかな...

投稿2015/05/01 00:41

chokojori

総合スコア973

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takotakot

2015/05/01 02:13

ありがとうございます。255で割って…と、面倒な処理をする方法以外に良い方法はないか…と思うのです。(除算をテーブルで済ませれば早いですが、そういう意味ではなく)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問