ホームページ  >  記事  >  バックエンド開発  >  javascript - exif.jsで読み込んだPNG画像の背景は黒ですか?

javascript - exif.jsで読み込んだPNG画像の背景は黒ですか?

WBOY
WBOYオリジナル
2016-10-24 00:12:421137ブラウズ

アップロード前の写真です

javascript - exif.jsで読み込んだPNG画像の背景は黒ですか?

アップロード後の写真です

javascript - exif.jsで読み込んだPNG画像の背景は黒ですか?

exif.js を使用して写真を解析すると、アップロードされた PNG 形式の背景が黒くなる理由がわかりません

コードを直接下に投稿してください

リーリー

画像の圧縮に使用されるEXIFは、PNG形式でアップロードされた画像を処理する方法がわかりません。助けてください。 ! !

直接ダウンロードして実行することもできます。主に、合成時に表示される透明な PNG の背景が黒になるためです。目的は黒背景を消すこと! !

リーリー

追加点:pngアップロード時のサイズに問題があることに今気づきました、ついでに解決してください! !

返信内容:

アップロード前の写真です

javascript - exif.jsで読み込んだPNG画像の背景は黒ですか?

アップロード後の写真です

javascript - exif.jsで読み込んだPNG画像の背景は黒ですか?

exif.js を使用して写真を解析すると、アップロードされた PNG 形式の背景が黒くなる理由がわかりません

コードを直接下に投稿してください

リーリー

画像の圧縮に使用されるEXIFは、PNG形式でアップロードされた画像を処理する方法がわかりません。助けてください。 ! !

直接ダウンロードして実行することもできます。主に、合成時に表示される透明な PNG の背景が黒になるためです。目的は黒背景を消すこと! !

リーリー

追加点:pngアップロード時のサイズに問題があることに今気づきました、ついでに解決してください! !

まず第一に、画像を JPG 形式に読み込むかどうかはわかりませんEXIF.readFromBinaryFile() - まず PNG と JPG について話す必要があるかもしれません。両者の違いは依然としてかなり大きいですが、この問題の主な理由は PNG であるということです。透明にすることはできますが、JPG は透明にすることができません。透明な画像が不透明な画像に処理されると、透明なピクセルはデフォルトの色 (白、黒、またはその他の色) に置き換えられます。

それで、最初に考えられる落とし穴は EXIF.readFromBinaryFile()

画像の処理に Canvas を使用しました。HTML Canvas についてはよく知りませんが、透明ピクセルを処理できるはずだと思います。しかし、これが2番目の可能性のある穴である可能性を排除することはできません。

最後に、o.toDataURL("image/jpeg", ... これは間違いなく落とし穴です。最初の 2 つの落とし穴が存在しないとしても、キャンバス内の画像は透明ですが、jpeg 形式で出力すると不透明になります...

具体的な落とし穴がどこにあるのかわかりません。上記のアイデアは参考用です。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。