• 0
موسى ياسين

محاكاة خاصية امتصاص اللون في الرسام

سؤال

إخواني الأعزاء أريد عمل خاصية امتصاص اللون من بكسل معين من صورة ليتم فيما بعد استخدامه (اللون) يعني أريد الدالة أو الصنف الذي استطيع عمل هذه الخاصية به بلغة الجافا

(الرجاء التوضيح بمثال يسيط).

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

1 إجابات على هذا السؤال .

  • 1

لاتوجد دالة أو مكون مخصص لهذا الغرض، لكن يمكنك عملها عن طريق تخزين الصورة المعروضة في كائن BufferedImage يمثل الـbackbuffer وعندما تريد رسم شيء ترسمه في تلك الصورة المخزنة أولاً ثم تعرضه على النافذة، عند النقر على النافذة حدد موقع النقر x, y، ثم اقرأ قيمة البكسل المقابل في صورة المخزنة باستخدام BufferedImage#getRGB مثلاً والتي تعطيك مركبات الـrgb، للحصول على المركبات منفردة استخدم الفئة Color:

Color color = new Color(backbuffer.getRGB(x, y));
int r = color.getRed();
int g = color.getGreen();
int b = color.getBlue();

خذ في الإعتبار أنك قد تحتاج للتحويل من إحداثيات الشاشة لإحداثيات الصورة في حال لم تكن متطابقة.

ملاحظة جانبية: إذا كان برنامجك محرر صور، ربما تقرأ عن الـaffine transformations وعن الفئة AffineTransform، قد يكون فهمها صعب في البداية لكنها سيسهل عليك عملك خصوصاً التحويل بين الإحداثيات.

تم تعديل بواسطه Mr.B
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .