Rumah  >  Artikel  >  Java  >  Bagaimana untuk Mencapai Kawalan Tahap Mampatan Eksplisit untuk Imej JPEG dengan ImageIO?

Bagaimana untuk Mencapai Kawalan Tahap Mampatan Eksplisit untuk Imej JPEG dengan ImageIO?

Linda Hamilton
Linda Hamiltonasal
2024-10-24 18:43:39440semak imbas

How to Achieve Explicit Compression Level Control for JPEG Images with ImageIO?

Menetapkan Tahap Mampatan untuk Imej JPEG dengan ImageIO

Apabila menyimpan imej sebagai JPEG menggunakan ImageIO, adalah perkara biasa untuk melaraskan tahap mampatan untuk mengawal keseimbangan antara kualiti imej dan saiz fail. Walau bagaimanapun, kefungsian ImageIO lalai tidak mempunyai pilihan ini.

Untuk menetapkan tahap mampatan secara eksplisit, kita perlu menyelam lebih dalam ke dalam API ImageIO. Menggunakan ImageIO.getImageWritersByFormatName("jpg").next() menyediakan akses kepada ImageWriter, yang membolehkan kami mengubah suai parameter khusus untuk format JPEG.

Kelas ImageWriteParam menyediakan kawalan ke atas tetapan mampatan. Dengan menetapkan ImageWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT), kami mendayakan tetapan tahap mampatan eksplisit.

Untuk menentukan tahap mampatan, gunakan ImageWriteParam.setCompressionQuality(0.7f) (di mana 0.7f mewakili tahap mampatan yang diingini). Nilai yang lebih hampir kepada 1.0 menunjukkan kualiti yang lebih tinggi dan kurang pemampatan, manakala nilai yang lebih hampir kepada 0.0 sepadan dengan kualiti yang lebih rendah dan pemampatan yang lebih tinggi.

Kaedah ImageWriter.setOutput() memerlukan ImageOutputStream, yang membolehkan kami mengawal imej imej destinasi. Gunakan sama ada FileImageOutputStream untuk output fail atau MemoryCacheImageOutputStream untuk output ke penimbal memori.

Untuk menyimpan JPEG yang diubah suai, gunakan jpgWriter.write(null, outputImage, jpgWriteParam), dengan outputImage ialah IIOImage yang mengandungi data imej dan jpgWriteParam ialah tetapan mampatan yang dikonfigurasikan lebih awal.

Pendekatan ini menyediakan kawalan terperinci ke atas tahap mampatan JPEG, membolehkan anda mengoptimumkan kualiti imej dan saiz fail untuk keperluan khusus anda.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Kawalan Tahap Mampatan Eksplisit untuk Imej JPEG dengan ImageIO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn