Recent Posts

Selamat datang di Coding Delphi Land Weblog kumpulan source code pemogram delphi

(Bukan maksud untuk menggurui tetapi marilah kita berbagi ilmu tuk perkembangan kemajuan teknologi kita

Selasa, 17 November 2009

Scaline Resize Image

Ini adalah contoh source code untuk mengcopy gambar dan menjadikan ukuran gambar menjadi 2 kali ukuran gambar aslinya dengan metoda scanline

procedure TForm1.Button1Click(Sender: TObject);
type
TRGBTripleArray = ARRAY[Word] of TRGBTriple;
pRGBTripleArray = ^TRGBTripleArray; // Use a PByteArray for pf8bit color.
var
x,y : Integer;
bx, by : Integer;
BitMap, BigBitMap : TBitMap;
P, bigP : pRGBTripleArray;
pixForm, bigpixForm : TPixelFormat;
begin
BitMap := TBitMap.create;
BigBitMap := TBitMap.create;
try
BitMap.LoadFromFile('littlefac.bmp');
pixForm := BitMap.PixelFormat;
bigpixForm := BigBitMap.PixelFormat;
BitMap.PixelFormat := pf24bit;
BigBitMap.PixelFormat := pf24bit;
BigBitMap.Height := BitMap.Height * 2;
BigBitMap.Width := BitMap.Width * 2;
for y := 0 to BitMap.Height - 1 do
begin
P := BitMap.ScanLine[y];
for x := 0 to BitMap.Width - 1 do
begin
bx := x * 2;
by := y * 2;
bigP := BigBitMap.ScanLine[by];
bigP[bx] := P[x];
bigP[bx + 1] := P[x];
bigP := BigBitMap.ScanLine[by + 1];
bigP[bx] := P[x];
bigP[bx + 1] := P[x];
end;
end;
Canvas.Draw(0, 0, BitMap);
Canvas.Draw(200, 200, BigBitMap);
finally
BitMap.Free;
BigBitMap.Free;
end;
end;

0 komentar:

Posting Komentar