الوصول إلى كل نقطة في الصورة (pixel)
#1
كيف نستطيع الوصول إلى كل نقطة في الصورة (pixel)
أو الوصول إلى مصفوفة العناصر
و كيف نستطيع قراءة لونها أو تغييره
الرد
#2

بسم الله الرحمن الرحيم

يمكن الوصل الى اي نقطة حسب احداثياتها x,y باستخدام Canvas
مثلا لدينا صورة Bitmat في مكون Image1 نصل للون النقطة ب
كود :
Image1.Canvas.Pixels[x,y]
نقراء اللون الى متغير c مثلا
كود :
c:=Image1.Canvas.Pixels[0,0];

مثلا نغير اللون لاول نقطة بالصورة الى الون الازرق نكتب
كود :
Image1.Canvas.Pixels[0,0] := clBlue;

وان اردنا عدم استخدام Canvas يمكن استخدام دوال API
GetPixel لمعرفة اللون
SetPixel لتغيير االون
لمزيد من التفاصيل وامثلة راجع الHelp
والسلام عليكم
الرد
#3
يسلمووووووووووووووووووو
الرد
#4
شكراً جزيلاً .............
في نفس الموضوع :
كيفية الوصول إلى نسبة اللون الأخظر أو الأزرق أو الأحمر في كل pixel
أي الوصول إلة R G B في كل pixel
الرد
#5
يمكنك استخدام ال scanline التي هي اسرع بكثير من استخدام ال pixels, ولان شرحها طويل يمكنك ان تجد شرحا مفصلا هنا: http://www.efg2.com/Lab/ImageProcessing/Scanline.htm

او اذا اردت ان تستعمل ال pixels يمكنك ان تسعمل هذه للتحويل من TColor الى RGB و بالعكس:

كود :
RGB to TColor function RGBToColor(R,G,B:Byte): TColor; begin Result:=B Shl 16 Or G Shl 8 Or R; end; TColor to RGB procedure ColortoRGB(Color : TColor;Var R,G,B : Integer); var R,G,B : Integer; begin R := Color and $ff; G := (Color and $ff00) shr 8; B := (Color and $ff0000) shr 16; end;
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم