معالجة الصور فى الجافا...2_الحصول و ضبط وحدات البكسل
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: التعامل مع الرسومات Java 2D/3D Graphics
صفحة 1 من اصل 1 • شاطر
معالجة الصور فى الجافا...2_الحصول و ضبط وحدات البكسل
اهلا وسهلا بكم
فى مقال سابق تحدثنا عن كيفية قراءة و كتابة الصور وتخزيها فى ذاكرة الوصول العشوائى للحاسوب Ram
في هذا المقال ، سنتعرف على بكسلات الصورة.و كيف يمكننا الحصول على قيم بكسل للصورة أو كيفية تعيين قيم بكسل في صورة باستخدام لغة برمجة Java...وقبل أن نبدء دعونا نتعرف على ماهى البيكسلات ؟
البيكسلات هي أصغر وحدة في الصورة تتكون من أربعة مكونات :
1_المكون ألفا _بالانجليزية Alpha _وهو مقياس الشفافية
2_المكون الأحمر وهو مقياس لدرجة اللون الاحمر
3_المكون الأخضر وهو مقياس لدرجة اللون الاخضر
4_المكونالأزرق وهو مقياس لدرجة اللون الازرق
و تختصر كل هذه المكونات بالرمز (ARGB). كل مكون له قيم رقمية و تنحصر جميع القيم الرقيمة لجميع المكونات ما بين 0 و 255 . الصفر يعني أن المكون غائب أو لا جود له و 255 يعني أن المكونات موجودة بالكامل....
ملحوظة:
نظرًا لأن 2^8 = 256 وقيمة مكونات البكسل تقع بين 0 و 255 ، لذلك نحن بحاجة فقط إلى 8 بت لتخزين القيم.لذلك إجمالي عدد البتات المطلوبة لتخزين قيم ARGB هو 8 * 4 = 32 بت أو 4 بايت.
نظرًا لأن الترتيب يدل على أن Alpha تحصل على أقصى 8 بتات ، فإن Blue يكتسب أدني 8 بتات. بالتالي فان قيم كل مكون على النحو التالى :
_قيم المكون الازرق 0_7
_قيم المكون الاخضر 8_15
_قيم المكون الاحمر 16_23
_ قيم المكون الفا 24_31
وبما اننا تعرفنا على بكسلات الصور يمكن تغير هذه القيم لتعديل درجات الوان الصور ودرجة شفافتها وخلافة وسنتعلم ذلك فى مقالات لاحقة لكن هذا المقال سنكتفى بكيفة الحصول على بسكيلات صورة و تعيين بيسكلات اخرى
_للحصول على قيمة إجمالى وحدات البيكسل باستخدام الشفرة التالية :
أو على النحو التالى :
_للحصول على قيم كل مكون على حدة ...يمكن إستخدام الطريقة getRGB على النحو التالي:
فى مقال سابق تحدثنا عن كيفية قراءة و كتابة الصور وتخزيها فى ذاكرة الوصول العشوائى للحاسوب Ram
في هذا المقال ، سنتعرف على بكسلات الصورة.و كيف يمكننا الحصول على قيم بكسل للصورة أو كيفية تعيين قيم بكسل في صورة باستخدام لغة برمجة Java...وقبل أن نبدء دعونا نتعرف على ماهى البيكسلات ؟
البيكسلات هي أصغر وحدة في الصورة تتكون من أربعة مكونات :
1_المكون ألفا _بالانجليزية Alpha _وهو مقياس الشفافية
2_المكون الأحمر وهو مقياس لدرجة اللون الاحمر
3_المكون الأخضر وهو مقياس لدرجة اللون الاخضر
4_المكونالأزرق وهو مقياس لدرجة اللون الازرق
و تختصر كل هذه المكونات بالرمز (ARGB). كل مكون له قيم رقمية و تنحصر جميع القيم الرقيمة لجميع المكونات ما بين 0 و 255 . الصفر يعني أن المكون غائب أو لا جود له و 255 يعني أن المكونات موجودة بالكامل....
ملحوظة:
نظرًا لأن 2^8 = 256 وقيمة مكونات البكسل تقع بين 0 و 255 ، لذلك نحن بحاجة فقط إلى 8 بت لتخزين القيم.لذلك إجمالي عدد البتات المطلوبة لتخزين قيم ARGB هو 8 * 4 = 32 بت أو 4 بايت.

_قيم المكون الازرق 0_7
_قيم المكون الاخضر 8_15
_قيم المكون الاحمر 16_23
_ قيم المكون الفا 24_31
وبما اننا تعرفنا على بكسلات الصور يمكن تغير هذه القيم لتعديل درجات الوان الصور ودرجة شفافتها وخلافة وسنتعلم ذلك فى مقالات لاحقة لكن هذا المقال سنكتفى بكيفة الحصول على بسكيلات صورة و تعيين بيسكلات اخرى
_للحصول على قيمة إجمالى وحدات البيكسل باستخدام الشفرة التالية :
- الكود:
Color c = new Color(image.getRGB(j, i));
أو على النحو التالى :
- الكود:
int p = img.getRGB( j , i );
_للحصول على قيم كل مكون على حدة ...يمكن إستخدام الطريقة getRGB على النحو التالي:
- الكود:
c.getRed();
c.getGreen();
c.getBlue();
- الكود:
import java.io.File;
import java.io.IOException;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
public class GetSetPixels
{
public static void main(String args[])throws IOException
{
BufferedImage img = null;
File f = null;
//قراءة الصورة
try
{
f = new File("G:\\Inp.jpg");
img = ImageIO.read(f);
}
catch(IOException e)
{
System.out.println(e);
}
//الحصول على حجم الصورة
int width = img.getWidth();
int height = img.getHeight();
int count = 0;
for(int i=0; i<height; i++) {
for(int j=0; j<width; j++) {
count++;
Color c = new Color(image.getRGB(j, i));
System.out.println("S.No: " + count + " Red: " + c.getRed() +" Green: " + c.getGreen() + " Blue: " + c.getBlue());
}
}
- الكود:
// لتعين وحدات بكسل للصورة
*/
a = 255;
r = 100;
g = 150;
b = 200;
//set the pixel value
p = (a<<24) | (r<<16) | (g<<8) | b;
img.setRGB(0, 0, p);
//write image
try
{
f = new File("G:\\Out.jpg");
ImageIO.write(img, "jpg", f);
}
catch(IOException e)
{
System.out.println(e);
}
}
}
زهراء- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 406
النقاط : 691
التقيم : 55
الدولة :
الجنس :
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: التعامل مع الرسومات Java 2D/3D Graphics
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
» شركة مكافحة حشرات بالكويت
» نظام مبيعات ومخازن Sales and Inventory System بالفجوال بيسك دوت نت مفتوح المصدر
» تشغيل ملفات فلاشية swf بأستخدام أداة Shockwave Flash
» تعلم كيفية تغير حجم النافذة و الادوات التى عليها بتغير دقة عرض الشاشة screen resolution
» إنشاء قاعدة بيانات MySQL بأستخدام شفرة Java
» تعلم كيفية استخدام المكون JFileChooser لفتح الملفات فى الجافا
» إنشاء و تنسيق الوان العنصر JProgressBar
» تآلف لأسرار الحياه والحب الحلال
» الرسم ثانئى الابعاد فى الجافا باستخدام Graphics2D...مقال 3_رسم الاشكال الهندسية_ رسم المربعات و المستطيل