JPGからPNGへの変換ツール

ワンクリックでJPGまたはJPEG写真をPNGに変換します。変換先の形式はすでにPNGに設定されているので、写真をドロップするだけです。可逆出力で、すべてお使いのデバイス上で行われます。

クリックして画像を選択、またはここにドラッグ&ドロップ

JPG、PNG、WebPに対応。デバイス内にとどまり、アップロードは一切されません。複数選択で一括変換。

生成されると、変換された画像がここに表示されます。

PNGは可逆です(ファイルサイズは大きいが透明度に対応)。JPEGとWebPは非可逆で品質スライダーがあります(ファイルサイズは小さいが、JPEGは透明度なし)。同じ視覚的品質ではWebPが通常JPEGを上回りますが、JPEGは互換性が最も広範です。

仕組み

ブラウザはあなたのJPGを生のピクセルにデコードし、そのピクセルは画像の本来の幅と高さのままcanvasに描画され、canvas.toBlob("image/png")が結果をPNGとして書き出します。この方向には品質スライダーがありません。なぜならPNGのDEFLATE圧縮は可逆であり、デコーダーが生成したすべてのピクセルが正確に保存されるからです。ファイル自体はあなたのマシンから外に出ることはなく、アップロードではなくローカルのオブジェクトURLを通じて参照されます。

期待値を正しく保つために知っておくべきことが2つあります。第一に、PNGへの変換はJPEG圧縮を元に戻すことはできません。JPGにすでに存在するブロックノイズやリンギングはピクセル単位でそのまま保持されます。そのため、PNGは今後何度も編集したり保存し直したりする場合の適切な変換先であり、画質を改善する手段ではありません。第二に、写真画像はDEFLATEがうまく圧縮できないセンサーノイズに満ちているため、生成されるPNGは元のJPGより通常数倍大きくなります。これは正常な動作であり、不具合ではありません。

canvasを介した往復処理は、ファイルをゼロから書き直すため、EXIFデータ(カメラ情報、GPS位置)は出力から失われます。それでも向きは正しく見えます。これは、最新のブラウザがデコード時にEXIFの回転情報をピクセルに焼き込むためです。そしてパイプライン全体がブラウザAPIで構成されているため、変換中にDevToolsのNetworkタブを開けば、あなたの写真とともに送信されるリクエストが正確にゼロ件であることを確認できます。