Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.25;
Скачать: CL | DM;

Вниз

Размер----ScreenShot   Найти похожие ветки 

 
Tol-123   (2003-10-25 19:57) [0]

Нужно сделать ScreenShot и сберечь изображение в файл, но чтобы при этом : (допустим размер
экрана 1024х768), размер изображения в файле был более меньше (640х480) .

Может кто что-то знает?


 
Fenik ©   (2003-10-25 20:55) [1]

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;


 
miek ©   (2003-10-25 21:40) [2]

Если размер не точно задан, проще всего пройтись по изображению и выкинуть каждый второй пиксел.


 
Fenik ©   (2003-10-25 22:15) [3]

>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;



Страницы: 1 вся ветка

Текущий архив: 2004.02.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.028 c
3-79626
Крутыш
2004-02-01 15:44
2004.02.25
DBF+ADO


1-79878
Developerr
2004-02-10 11:23
2004.02.25
Edit.Enabled=false;


1-79902
Dr.Karter
2004-02-09 14:38
2004.02.25
Копирование папки


1-79773
Yuri Btr
2004-02-11 21:17
2004.02.25
Уникальность Pointer в TList


1-79833
VitGun
2004-02-10 21:12
2004.02.25
Delphi+Access+Word(OLE)+Excel(OLE)