| Код | ... Form1.Canvas.CopyRect(Bounds(0, 0, 400, 300), Form1.Canvas,Bounds(0, 0, 1024, 768)); ...
| Но это хреново.. лучше брать несколько соседних пикселей, н/р разбить изображение на квадраты 4х4 (уменьшить в 4 раза), ну в зависимости от того масштаба на который ты хочешь уменьшить, и найти средний цвет этого квадрата...
| Код | ... var x, y: integer; i, j: integer; r, g, b: integer; ... for y := 0 to 300 do begin for x := 0 to 400 do begin r := 0; for i := 0 to 3 do for j := 0 to 3 do r := r + GetRValue(Form1.Canvas.Pixels[4*x+i, 4*y+j]); r := round(r / 16); g := 0; for i := 0 to 3 do for j := 0 to 3 do g := g + GetGValue(Form1.Canvas.Pixels[4*x+i, 4*y+j]); g := round(g / 16); b := 0; for i := 0 to 3 do for j := 0 to 3 do b := b + GetBValue(Form1.Canvas.Pixels[4*x+i, 4*y+j]); b := round(b / 16); Form1.Canvas.Pixels[x,y] := RGB(r, g, b) end; Application.ProcessMessages; end; ...
| |