المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : تكبير الصورة


muhannad
06-04-2010, 05:48 PM
كيف يتم تكبير الصورة وحساب المسافة بين بيكسلين

ramijz
06-04-2010, 08:07 PM
السلام عليكم

تستطيع التحكم بأي صورة في الدلفي عن طريق Canvas وبكل الاحول في المشاركة القادمة سوف اضع مثال عملي ان شاء الله لكن علي ان اقوم بالبحث عن هذه الشيفرة في ارشيفي لاني عملت بها منذ 7 سنوات يومها كنت احاول تقليد لعبة red alert ولكن الملل قتلني

سلام

kachwahed
06-04-2010, 08:24 PM
أولا: السلام عليكم ورحمة الله
راجع هذا:
كود سورس GraphicEffect (http://www.delphi4arab.com/forum/showthread.php?t=2662)
بالتوفيق.

themaster
06-04-2010, 08:44 PM
الجواب موجود مع اختصاص برمجيات سنة رابعة

shagrouni
08-04-2010, 02:25 PM
السلام عليكم

الكود التالي، محاولة مبسطة:
يمكن تحسين السرعة باستخدام ScanLine
كما يمكن تطويره تحديد نسب تكبير وتصغير أكثر مرونة.

procedure TForm1.Button1Click(Sender: TObject);
var
x, y : integer;
Bmp1, Bmp2: TBitmap;
x2, y2, i, j: integer;
iScaleW, iScaleH: integer;
begin
iScaleW := 2;
iScaleH := 2;

Bmp1 := Image1.Picture.Bitmap;
Bmp2 := Image2.Picture.Bitmap;


Bmp2.Width := Bmp1.Width * iScaleW;
Bmp2.Height := Bmp1.Height * iScaleH;

for y := 0 to (Bmp1.Height -1) do
begin
y2 := (y * iScaleH)+ 1;
for x := 0 to (Bmp1.Width -1) do
begin
x2 := (x * iScaleW) + 1;
for i := 0 to iScaleH - 1 do
begin
for j := 0 to iScaleW -1 do
begin
Bmp2.Canvas.Pixels[x2 +j , y2 + i] := Bmp1.Canvas.Pixels[x, y];
end;
end;
end;
end;

Image2.Width := Bmp2.Width;
Image2.Height := Bmp2.Height;

end;