مشاهدة النسخة كاملة : الوصول إلى كل نقطة في الصورة (pixel)
الأمير
18-12-2008, 07:08 PM
كيف نستطيع الوصول إلى كل نقطة في الصورة (pixel)
أو الوصول إلى مصفوفة العناصر
و كيف نستطيع قراءة لونها أو تغييره
B.M.AbdelAziZ
18-12-2008, 09:17 PM
بسم الله الرحمن الرحيم
يمكن الوصل الى اي نقطة حسب احداثياتها 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
والسلام عليكم
الأمير
23-12-2008, 09:19 AM
يسلمووووووووووووووووووو
الأمير
23-12-2008, 09:31 AM
شكراً جزيلاً .............
في نفس الموضوع :
كيفية الوصول إلى نسبة اللون الأخظر أو الأزرق أو الأحمر في كل pixel
أي الوصول إلة R G B في كل pixel
mrmat
25-12-2008, 03:19 AM
يمكنك استخدام ال 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;
vBulletin® , Copyright ©2008-2012