![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Размер----ScreenShot [D7, WinXP]
Tol-123 © (2003-10-25 19:57:00)
Нужно сделать ScreenShot и сберечь изображение в файл, но чтобы при этом : (допустим размер
экрана 1024х768), размер изображения в файле был более меньше (640х480) .
Может кто что-то знает?
Fenik (2003-10-25 22:15:00) [1]
>Fenik © (25.10.03 20:55) [1]
Блин. Забыл самое главное: уменьшение.
procedure DoScreenShotToFile(const FileName: string);
var C: TCanvas;
Bitmap: TBitmap;
begin
Bitmap := TBitmap.Create;
try
Bitmap.PixelFormat := pf24Bit;
Bitmap.Width := 640;
Bitmap.Height := 480;
C := TCanvas.Create;
try
C.Handle := GetDC(GetDesktopWindow);
Bitmap.Canvas.CopyRect(Rect(0, 0, Bitmap.Width, Bitmap.Height), C, Rect(0, 0, Screen.Width, Screen.Height));
finally
C.Free;
end;
Bitmap.SaveToFile(FileName);
finally
Bitmap.Free;
end;
end;
miek (2003-10-25 21:40:00) [2]
Если размер не точно задан, проще всего пройтись по изображению и выкинуть каждый второй пиксел.
Fenik (2003-10-25 20:55:00) [3]
procedure DoScreenShotToFile(const FileName: string);
var C: TCanvas;
R: TRect;
Bitmap: TBitmap;
begin
Bitmap := TBitmap.Create;
try
Bitmap.PixelFormat := pf24Bit;
Bitmap.Width := Screen.Width;
Bitmap.Height := Screen.Height;
R := Rect(0, 0, Screen.Width, Screen.Height);
C := TCanvas.Create;
try
C.Handle := GetDC(GetDesktopWindow);
Bitmap.Canvas.CopyRect(R, C, R);
finally
C.Free;
end;
Bitmap.SaveToFile(FileName);
finally
Bitmap.Free;
end;
end;