الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عكس الوان الصورة

بدأه sahraoui dhelim في 23 نوفمبر 2012 · 1 رد · 463 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اريد ان احمل صورة في برنامجى على شكل grayscale من 0 الى 255

ثم اعكس لون كل pixel هكذا newcolor=255-oldcolor

ثم اقوم بتخزينها مرة اخرى

المشكل هو ان الصورة على شكل rgb و لكي اقوم بتحويلها الي رمادى مدرج استخدمت

red=((pixels >> 16) & 0xff)
green=((pixels >> 8) & 0xff)
bleu=(pixels & 0xff)

ثم اقوم بلقسمة على ثلاثة لكى احصل على الرمادى المكافيء لهذا اللون

المشكل هنا ان الدالة setreg نمرر له لون rgb و ليس grayscale

السوال و بدون اطالة

كيف اخزن لون grayscale في bufferedImage

اي هل توجد طريقة اخري تشبه setrgb تاخذ grayscale

#2

lتم حل المشكل بحمد الله

ما اغبانى

نسيت تماما استعمال الصنف Color مع انها المعنى اﻻول بتعامل مع الوان

هذا هو كود عكس اﻻلوان

BufferedImage img = null;
int[] pixels;
Color couleur,couleur_inverse;
try {
img = ImageIO.read(new File("photo1.jpg"));
int w, h;
w = img.getWidth();
h = img.getHeight();
pixels=new int[h*w];
img.getRGB(0, 0, w, h, pixels, 0, w);
matrice=new int[h][w];

for(int i=0;i<pixels.length;i++){
couleur=new Color(pixels);
couleur_inverse=new Color((255-couleur.getRed()),(255-couleur.getGreen()),(255-couleur.getBlue()));
pixels=couleur_inverse.getRGB();
}
img.setRGB(0, 0, w, h, pixels, 0, w);
ImageIO.write(img, "jpg", new File("image_inverse.jpg"));
System.out.println("fait");

} catch (IOException e) {
e.printStackTrace();
}

هذا الكود يشتغل جيدا

لكن عندم اردت اختصاره اي عدم المرور بلجدول pixels اي هكذا

for(int i=0;i<h;i++){
for(int j=0;j<w;j++){
couleur=new Color(img.getRGB(i, j));
couleur_inverse=new Color((255-couleur.getRed()),(255-couleur.getGreen()),(255-couleur.getBlue()));
img.setRGB(i, j, couleur_inverse.getRGB());
}
}

اصبح يعطيني اخطاء غير مفهمة ثم في النهاية يكتب build successfully اي اتها ﻻ توجد اخطاء؟؟؟؟؟؟؟؟؟؟

تم تعديل هذه المشاركة بواسطة sahraoui dhelim في 24 نوفمبر 2012 في 12:50

مواضيع مشابهة