2012-09-14 88 views
15

.jpg formatの画像はwhite background colorです。 Imagemagickで白い背景色を透明にしたい。私は多くの方法を試みましたが、まだ白い背景を削除することはできません。この問題を解決するのに役立つ人もいます。ImageMagickの白い背景色を透明に置き換える方法は?

+0

あなたが何をしようとしたのですか?まず「インデックス付きのカラー」モード(PNGなど)に変換する必要があります。どのようにしても、画像と透明の境界にアーチファクトが現れることが予想されます。 – msw

+0

透明に白:http://stackoverflow.com/questions/2322750/replace-transparency-in-png-images-with-white-background –

答えて

24

まず、あなたはJPEGは透明度をサポートしていないため、.jpgから.png形式に画像形式を変換する必要があります。

convert image1.png -fuzz 20% -transparent white result.png

-fuzz

オプションは、純粋な白色から指定されたパーセント偏差が同様に透明に変換することを可能にする:このコマンドを使用します。これは、画像にノイズや微妙なグラデーションが含まれている場合などに便利です。

+13

私の答えに何が間違っていましたか? (あなたはあなたの質問に、ある程度の曖昧さが必要だとは言わなかったし、サンプルファイルも提供しなかったので、推測するのは不可能だった...) –

+6

*最初のファイルをJPEGからPNGに変換する必要はなく、*のみ*白を透明に変換するだけです。私の命令は、すべて* 1 *でそれを行います。 –

+2

@KurtPfeifle彼は自分の答えに答えるのではなく、あなたの答えを改善するのに役立つ可能性があることを理解しています。 '-fuzz 20%'がなければ、ここでは動作しませんでした。私はあなたの答えは、ファズオプションbtwで改善することができると思う、私はそれを行う上で全く問題はないと思う。彼の答えは完全に正しいわけではないので、私はjpgからpngの結果に直接進むことができます。最後に両方の答えが深刻な問題を引き起こします。輪郭の背景色(ここでは黒色)が透明になります。実際の画像の中のすべての黒も透明になります。実際に私のイメージを乱したもの:> –

45

JPEGに透明な背景色を設定することはできません。 JPEGファイル形式は透過性をサポートしていません。あなたは透明な背景が必要な場合は

、あなたは

  • いずれかPNG(高品質、JPEGよりもおそらく大きなファイルサイズ)
  • またはGIF(場合には、あなたが許容できる低品質とにJPEGに変換する必要があります最大255色の範囲)。

コマンド例:

convert your.jpg -transparent white your.png 
+1

私はあなたの実際のコマンドではなくあなたの投稿を読んでいなければなりません。あなたが「手作業で変換する」ことを提案していたと思ったので、私はあなたの答えに投票しました。私は構文に慣れていませんが、私はその機能を持っています。 – Jim22150

6

私はちょうど非常にきちんとしたことを見つけました!

magicwand 1,1 -t 20 -f image -r outside -m overlay -o 0 image.jpg imgOutput.png 

それは(唯一の非商業的使用のために)hereからダウンロードすることができフレッドWeinhausのbashスクリプトです。また、約250のスクリプトがあります!これは素晴らしいです!内側の画像の点をそのままにして、すべての背景を削除するのはちょっとしたトリックでした。

彼のページには、例としていくつかのイメージがありますので、コマンドラインに置く必要があるものを選んでください!

初期位置1,1は、すべての輪郭が背景であるという一般的な推測者です。出力がなければならないこと

ご注意 ".pngを"

+0

本当に素晴らしい、ありがとう! – dsummersl

1

これはmagicwandのない私の解決策は、(イム< 7.0用convertmagickを置き換え)です:

magick img.png -fuzz 20% -fill none -draw "alpha 1x1 floodfill" result.png 
+1

at ubuntu imagemagick v8:6.7.7.10 - エラー 'convert.im6:非準拠の描画プリミティブの定義 'alpha' @ error/draw.c/DrawImage/3158.'、どんな考えですか? –

+0

imagemagick 6の正しいコマンドは次のとおりです。 convert "./input.jpg" -fill none -draw 'color 1,1 floodfill' output.png –

関連する問題