هل هناك طريقة لتعيين لون افتراضي للشفافية عند استخدام كولوركونفرتوب في جافا2د?
-
28-10-2019 - |
سؤال
أنا تحويل صورة مع الشفافية في ذلك إلى كولورسباس التي ليس لديها الشفافية.أود أن تعيين لون الخلفية للمناطق شفافة.الآن عندما أقوم بتحويله ، تتحول أي منطقة شفافة إلى اللون الأسود في الصورة النهائية.هل هناك طريقة للقيام بذلك أثناء التحويل بين مساحات الألوان?هنا هو رمز بلدي يمكنني استخدام لتحويل بين مسافات اللون:
public BufferedImage convertColorspace( BufferedImage source, int newType) {
BufferedImage destination = new BufferedImage( source.getWidth(), source.getHeight(), newType);
ColorConvertOp colorConvertOp = new ColorConvertOp(null);
colorConvertOp.filter(source, destination);
return destination;
}
// here is how its used
BufferedImage converted = convertColorspace(combinedImage, BufferedImage.TYPE_3BYTE_BGR);
أنا تحويل من بوفيريديماج.اكتب _4بيت_أرجب إلى الصورة المخزنة مؤقتا.اكتب _3بيتي_ بي جي آر.
المحلول
ماذا عن:
BufferedImage temp = new BufferedImage(source.getWidth(), source.getHeight(),
BufferedImage.TYPE_INT_ARGB);
Graphics2D g2 = temp.createGraphics();
g2.setColor(Color.green);
g2.fillRect(0, 0, source.getWidth(), source.getHeight());
g2.drawImage(0, 0, source, null);
g2.dispose();
ثم اتصل colorConvertOp.filter
مع temp
بدلا من source
.
لا تنتمي إلى StackOverflow