السلام عليكم ورحمة الله وبركاته:
لقد قمت بعمل هذا الكود البسيط وذلك لتجزئة الصور ، مفترضاً فى هذا المثال أن لدينا صورة عرضها 893 وإرتفاعها 19 وتحتوى على 47 منظر فإذا قمن بحسبتها ستجد أن كل منظر مربع 19 × 19 وذلك بقسمة العرض الكلى 893 على عدد المناظر سنحصل على 19 ونعرف مسبقاً أن الإرتفاع 19 وأن الصور على شكل صف واحد.
لقد جائتنى الفكرة عندما فصلت من الــ Messanger من الــ Resources الخاصة به مجموعة الصور الصغيرة التى يمكنك إرسالها منه ، وكانت الصور عباره عن صورة واحدة بالوصف السابق فكان لابد من طريقة لفصلهم ، وها هى الطريقة لعلها تكون مفيده
ستحتاج لوضع 2 image الأولى تحتوى على الصورة والثانية فارغة
ووضع 1 label ، Button
procedure TForm1.Button1Click(Sender: TObject);
var
mybitmap:array[0..46] of graphics.TBitmap ;
x2,x:integer;
begin
for x := 0 to 46 do begin
mybitmap[x]:=graphics.TBitmap .Create;
mybitmap[x].Width:=19;
mybitmap[x].Height:=19;
end;
x:=-19;
x2:=0;
repeat
inc(x2);
label1.caption:=inttostr(x2);
x:=x+19;
mybitmap[x2-1].Canvas.copyRect( Bounds( 0,0,mybitmap[x2-1].Width,mybitmap[x2-1].Height ), image1.Canvas, Bounds( x,0,mybitmap[x2-1].Width ,mybitmap[x2-1].Height ));
image2.Picture.Bitmap:=mybitmap[x2-1];
application.ProcessMessages;
sleep(750);
until x=874;
for x := 0 to 46 do mybitmap[x].Free;
end;
مع تحياتى
إبراهيم دياب
(gift)