|
|
| Посл.отвђт | Сообщен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 |