exif.js を使用して写真を解析すると、アップロードされた PNG 形式の背景が黒くなる理由がわかりません
コードを直接下に投稿してください
リーリー画像の圧縮に使用されるEXIFは、PNG形式でアップロードされた画像を処理する方法がわかりません。助けてください。 ! !
直接ダウンロードして実行することもできます。主に、合成時に表示される透明な PNG の背景が黒になるためです。目的は黒背景を消すこと! !
リーリー追加点: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 形式で出力すると不透明になります...
具体的な落とし穴がどこにあるのかわかりません。上記のアイデアは参考用です。