· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Screen logger

Посл.отвђт Сообщенiе


Дата: Июн 27, 2004 23:18:27

Хочу чтобы прога фотографировала часть экрана и сохраняла в jpg. Идея такова: посылается нажатие на "Print Screen",
из буфера рисунок копируется в файл. Проблема в том что мне нужно получить 1)кусок экрана, который я захочу;
2)чтобы сохранялось jpg. Хелп =)


Дата: Июн 27, 2004 23:45:39

зачем PrintScreen то нажимать ?
"нажми" лучше GetDC(NULL) :)
получишь контекст экрана,
ну а потом BitBlt ту часть,
которую нужно.

на счет сохранения в jpg..
в ole32 есть ф-ции открытия,
сохранения тоже вроде есть,
копай в ту сторону.

или юзай какую-нибудь библиотеку,
вроде GflSDK или
http://www.catenary.com/docs/cont2f.html
ну и т.п.


Дата: Июн 28, 2004 00:07:30

GDI+ умеет работать с JPEG, вроде и сохранять в том числе.


Дата: Июн 28, 2004 09:42:28

Нашёл на Делфи. Респект тому, кто переведёт в масм =)

procedure TForm1.Timer1Timer(Sender: TObject);
var
jp:Tjpegimage;
bit:Tbitmap;
begin
keybd_event(VK_SNAPSHOT, 1, KEYEVENTF_EXTENDEDKEY, 0);
kol_vo:=kol_vo+1;
jp:=Tjpegimage.Create;
bit:=Tbitmap.Create;
if clipboard.HasFormat(cf_bitmap) then
 bit.assign(clipboard);
jp.assign(bit);
jp.CompressionQuality:=100;
JP.Compress;
JP.SaveToFile('C:\screen_'+inttostr(kol_vo)+'.jpg');

application.processmessages;

end;


Дата: Июн 28, 2004 10:28:37

переводить на асм придется библеотеку graphics от Дельфи, что не есть рулез. юзай gdi+ и не мучайся, единственный минус - придеться тащить за собой сам GDI+, ведь он есть не в каждой винде.


Дата: Июн 28, 2004 10:53:28

sh3l3st
Нашёл на Делфи
То, что ты нашел, не соответствует твоей постановке задачи мне нужно получить 1)кусок экрана и к тому же делает копию через clipboard, т.е. возможна потеря уже имеющихся там данных.

Респект тому, кто переведёт
Что вызывает затруднение у тебя?

jekyll
юзай gdi+ и не мучайся, единственный минус - придеться тащить за собой сам GDI+
Я присоединюсь к Funbit. OLE таскать не придется.


Дата: Июн 28, 2004 11:27:28

q_q
OleSave?


Дата: Июн 29, 2004 04:03:06 · Поправил: q_q

jekyll
Нет. OleSave - это надстройка, как собственно и GDI+. Я криво выразился. Хотел сказать, что и OLE и GDI+ не будут работать, если в системе не установлен/зарегистрирован jpeg encoder, а GDI+ это дополнительная (хотя и удобная) надстройка над GDI и OLE.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.049