ضبط مستوى ضغط JPEG في Java باستخدام ImageIO
في مجال معالجة الصور، يعد التحكم في مستوى ضغط ملفات JPEG أمرًا ضروريًا لتحقيق التوازن جودة الصورة وحجم الملف. على الرغم من أن مستوى الضغط الافتراضي لـ ImageIO قد لا يكون كافيًا دائمًا، فإن هذه المقالة تتعمق في كيفية ضبط هذه المعلمة.
الحصول على ImageWriter مباشرة
يتضمن النهج المباشر استرداد ImageWriter لتنسيق JPEG:
ImageWriter jpgWriter = ImageIO.getImageWritersByFormatName("jpg").next();
إعداد معلمات الضغط الصريحة
لتعيين مستوى الضغط بشكل صريح، استخدم فئة ImageWriteParam:
ImageWriteParam jpgWriteParam = jpgWriter.getDefaultWriteParam();
jpgWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
ضبط جودة الضغط
يتم تحديد مستوى الضغط المطلوب كتعويم بين 0.0f (أقصى ضغط، الحد الأدنى من الجودة) و1.0f (الحد الأدنى من الضغط، الحد الأقصى للجودة):jpgWriteParam.setCompressionQuality(0.7f); // Set a compression quality of 70%
كتابة الإخراج يتطلب ImageWriter ImageOutputStream لإخراج الصورة:
ImageOutputStream outputStream = createOutputStream(); // إنشاء OutputStream (على سبيل المثال، FileImageOutputStream) jpgWriter.setOutput(outputStream);
ImageOutputStream outputStream = createOutputStream(); // Generate an OutputStream (e.g., a FileImageOutputStream)
jpgWriter.setOutput(outputStream);
Finalizationبمجرد كتابة الصورة، يجب التخلص من ImageWriter:
jpgWriter.dispose ();jpgWriter.dispose();
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3