Rover
26-03-2008, 02:58 PM
كيف يمكن اظهار الصورة على الفورم بيكسل تلوا الآخر ( نفس تقنية الماسح ) .. عن طريق ربطها مع Timer
و تقبلوا بقبول فائق التقديرو الأحترام ...
merouane
06-04-2008, 03:38 PM
السلام عليكم
الأمر بسيط
بواسطة Timer يمكن أن نظهر الصورة بيكسل تلو الأخر
timer أسميته TimerPixel
var
c : TColor;
x : Integer = 0;
y : Integer = 0;
//------------------------------------Timer قبل بداية عمل
image2.Height := image1.Picture.Graphic.Height;
image2.Width := image1.Picture.Graphic.Width;
// نجعل لون خلفية الصورة نفسه لون الأرضي
image2.Canvas.Brush.Color := Form1.color;
Image2.Canvas.FillRect(rect(0,0,Image2.Width, Image2.height));
//-------قد تستغني عن التالي إذا لم ترد صورة شفافة
C := image1.Canvas.Pixels[0,0];
//------------------------------------------------------------------
procedure TForm1.TimerPixelTimer(Sender: TObject);
begin
if (image1.Canvas.Pixels[x,y]<> C) then // لعدم إظهار لون معين
image2.Canvas.Pixels[x,y] := image1.Canvas.Pixels[x,y];
if x < image1.Picture.Width then
x := x+1
else
begin
x := 0;
if y < image1.Picture.Height then
y := y+1
else
TimerPixel.Enabled := false;
end;
end;
قد تجد أحسن من هذه الشيفرة .. لكنها قد تجعلك على الطريق
مثال كامل تجده في المرفقات
تحياتي :)