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