web-dev-qa-db-ja.com

ImageMagickで白い背景色を透明な画像に置き換える方法は?

.jpg formatwhite background colorの画像があります。 Imagemagickの白い背景色を透明にしたいのですが。多くの方法を試しましたが、それでも白い背景は削除できません。誰かが私がこれを解決するのを助けることができますか?.

31
NewUser

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

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

-fuzzオプションを使用すると、純粋な白色からの指定されたパーセンテージ偏差を透明に変換することもできます。これは、たとえば、画像にノイズや微妙なグラデーションが含まれている場合に役立ちます。

39
NewUser

JPEGに透明な背景色を含めることはできません。 JPEGファイル形式は透明度をサポートしていません。

透明な背景が必要な場合は、JPEGを

  • pNG(高品質、JPEGよりもファイルサイズが大きい可能性があります)
  • またはGIF(低品質と最大255色の範囲を許容できる場合)。

コマンド例:

convert  your.jpg  -transparent white  your.png
53
Kurt Pfeifle

とてもきちんとしたものを見つけました!

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

here からダウンロードできるFred Weinhaus bashスクリプトです(非商用目的のみ)。また、約250のスクリプトがあります!!これはすごい!内部の画像のドットをそのままにして、すべての背景を削除するのはまさにそのトリックでした!

彼のページには例としていくつかの画像があるので、コマンドラインに入力する必要があるものを選択します。

初期位置1,1は、すべての輪郭が背景であると言う一般的な推測です。

出力は「.png」でなければならないことに注意してください

8
Aquarius Power

これはmagicwandなしの私のソリューションです(magickをim <7.0の場合はconvertで置き換えます):

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