سؤال

نحن نستخدم JAI (https://jai-imageio.dev.java.net/) لتغيير حجم الصور واقتصاصها في Java.نود إنشاء زوايا مستديرة على صورنا.كيف نفعل ذلك؟

الصور هي JPG و PNG.أعتقد أنه من الأسهل القيام بذلك باستخدام ملفات JPG؟

الصورة عبارة عن PlanarImage من JAI

PlanarImage src = JAI.create(...,...);

والتي يمكن تحويلها إلى كائن java.awt.Graphics

هل قام أحد بهذا من قبل؟

هل كانت مفيدة؟

المحلول

يدعم PNG قناة ألفا الشفافة، لكن JPG لا يدعمها.لذلك، بالنسبة إلى JPG، سيتعين عليك أيضًا اختيار لون لطلاء الجزء "غير المرئي" من المستطيل للزوايا المستديرة.

هناك فئة java.awt.geom.RoundRectangle2D المتاحة للقيام بذلك:

public void paint(Graphics g) {
    Graphics2D g2d = (Graphics2D) g;
    RoundRectangle2D rr = new RoundRectangle2D.Float(50, 50, 200, 100, 10, 10);
    g2d.draw(rr);
}

تأخذ طريقة Float() للفئة RoundRectangle2D ست وسائط:

  • الأولين يمثلان موقع الزاوية اليسرى العليا.
  • تمثل الوسيطتان 3 و4 عرض المستطيل الدائري وارتفاعه.
  • تمثل الحيلتان الأخيرتان عرض وارتفاع القوس المرسوم في الزوايا.

لذلك، ارسم مستطيلًا مستديرًا يحتوي فقط على الصورة التي تريد أن تكون لها زوايا مستديرة، ثم قم بتراكبها أو استخدام قناع للحصول على التأثير المطلوب.

نصائح أخرى

ما الذي يمنعك من وضع كل ما تريد زوايا على الرسومات وجوه الحصول على الصورة؟ لست متأكدا حقا ما يفترض بك "زوايا مستديرة" لتبدو وكأنها، ولكن يمكنك القيام بجميع عمليات الطلاء معقولة على الرسومات الكائن.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top