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

Вниз

Требуется помощь в написании программы   Найти похожие ветки 

 
Тима   (2009-07-13 23:29) [0]

Я сделал программу которая делает скриншот рабочего стола и сохраняет на диск С. Проблема в том что сделанный скриншот весит около 5мб. Надо программно сжать. Как это сделать . Исходник:

begin

bmp:=TBitmap.Create;

bmp.Height:=Screen.Height;
bmp.Width:=Screen.Width;

DC:=GetDC(0); //

bitblt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
DC, 0, 0, SRCCOPY);

bmp.SaveToFile("c:\111.jpg");

ReleaseDC(0, DC);
end;


 
clickmaker ©   (2009-07-13 23:35) [1]

TJpegImage


 
TIF ©   (2009-07-13 23:51) [2]

> TJpegImage

GIF тоже ничего :) Правда если требуется сохранить оригинальное качество, PNG вне конкуренции

PS: если важная экономия с точностью до кибобайт, JPG и PNG можно "сжать" (точнее удалить избыточную информацию) специальными утилитами. Если кому-то интересно - выложу подробности


 
TIF ©   (2009-07-13 23:54) [3]

> важная

важна

> до кибобайт

Не пил, а пишу что попало :)
Килобайт


 
Юрий Зотов ©   (2009-07-14 00:00) [4]


> Тима   (13.07.09 23:29)  


Bmp.Free не хватает.


 
palva ©   (2009-07-14 00:00) [5]


> GIF тоже ничего :)

Я надеясля, что TIF выскажется за TIFF


 
Игорь Шевченко ©   (2009-07-14 00:02) [6]


> скриншот весит около 5мб


"Компьютер не подчиняется законам физики.
Только в нём глюки возникают из ничего,
файлы исчезают в никуда, а объём измеряется
в метрах и называется весом."


 
Anatoly Podgoretsky ©   (2009-07-14 01:56) [7]

> palva  (14.07.2009 00:00:05)  [5]

Переименуем в GIFF


 
SPeller ©   (2009-07-14 04:38) [8]


> объём измеряется
> в метрах и называется весом

Не литрами же его измерять :)


 
brother ©   (2009-07-14 04:54) [9]

В uses добавляем JPEG
...

var
bmp: TBitmap;
DC: HDC;
Jpg: TJpegImage;
Begin
Try
bmp:= TBitmap.Create;
Jpg:= TJpegImage.Create;
bmp.Height:=Screen.Height;
bmp.Width:=Screen.Width;
DC:=GetDC(0);
bitblt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
DC, 0, 0, SRCCOPY);
Jpg.Assign(Bmp);
Jpg.SaveToFile("c:test.jpg");
ReleaseDC(0, DC);
finally
Bmp.Free;
jpg.Free;
End;
End;


 
brother ©   (2009-07-14 04:56) [10]

> Jpg.SaveToFile("c:test.jpg");

те
Jpg.SaveToFile("c:\111.jpg");
;)


 
жж   (2009-07-14 07:50) [11]

Удалено модератором


 
БарЛог ©   (2009-07-14 10:44) [12]

Удалено модератором


 
Тима   (2009-07-14 12:42) [13]

brother спасибо!)


 
Petr V. Abramov ©   (2009-07-14 23:31) [14]


> делает скриншот рабочего стола и сохраняет на диск С.

сохраняй на диск D, там места больше :)


 
brother ©   (2009-07-15 04:17) [15]

> brother спасибо!)

вообще, это гуглится за пару минут...


 
Дмитрий С ©   (2009-07-15 06:29) [16]

Layered-окошки таким образом не скриншотяться :(


 
brother ©   (2009-07-15 07:36) [17]

> Layered-окошки таким образом не скриншотяться :(

Его проблемма - объем скриншота)



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

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

Наверх




Память: 0.5 MB
Время: 0.013 c
1-1214818458
Context
2008-06-30 13:34
2009.09.13
Получить контекстное меню отдельного расширения оболочки


2-1247549794
petr
2009-07-14 09:36
2009.09.13
Ошибка на HTML странице в TWebbtowser


15-1247270707
KilkennyCat
2009-07-11 04:05
2009.09.13
Возможно, не будет работать до понедельника pda.delphimaster.net


15-1247559834
Dennis I. Komarov
2009-07-14 12:23
2009.09.13
ico Windows


15-1247658666
картман
2009-07-15 15:51
2009.09.13
Как добавить данные из БД в полученный ранее набор данных?