Вопрос № 29786: Здравствуйте уважаемые эксперты. Подскажите пожалуйста как картинку (если точно скрин) из буфера сохранить в файл....
Вопрос № 29.786
Здравствуйте уважаемые эксперты. Подскажите пожалуйста как картинку (если точно скрин) из буфера сохранить в файл.
Отправлен: 18.11.2005, 20:07
Вопрос задал: Tarantul (статус: Посетитель)
Всего ответов: 5 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Denisss Здравствуйте, Tarantul!
см. пример в приложении...
Приложение:
Ответ отправил: Denisss (статус: Практикант)
Отправлен: 18.11.2005, 22:15
Отвечает: REFERI
Здравствуйте, Tarantul!
Наверное хотите сделать прогу чтобы снимала скриншоты и сохраняла автоматически! Что ж поможем чем сможем!
Вот сама процедура снимка.
procedure ScreenShot(Bild: TBitMap);
var
c: TCanvas;
r: TRect;
begin
c := TCanvas.Create;
c.Handle := GetWindowDC(GetDesktopWindow);
try
r := Rect(0, 0, Screen.Width, Screen.Height);
Bild.Width := Screen.Width;
Bild.Height := Screen.Height;
Bild.Canvas.CopyRect(r, c, r);
finally
ReleaseDC(0, c.Handle);
c.Free;
end;
end;
А вот пример использования
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Visible := False;
Sleep(750); // some delay, ein wenig Zeit geben
ScreenShot(Image1.Picture.Bitmap);
Form1.Visible := True;
Image1.Picture.SaveToFile('C:Temp.bmp');
end;
Удачи в кодинге!
--------- Не судите, да не судимы будете...
Ответ отправил: REFERI (статус: 3-ий класс)
Отправлен: 18.11.2005, 23:13
которая загружает изображение в TBitmap в соответствии с выбранным форматом.
Константы форматов начинаются с "CF_" (CF_BITMAP, CF_TIFF, и т.д.).
В приложении приведен код, который сначала загружает изображение в Image1, а затем сохраняет его в файл.
Удачи!
Приложение:
Ответ отправил: Denis Hakimov (статус: 5-ый класс)
Отправлен: 19.11.2005, 01:50
Отвечает: sir henry
Здравствуйте, Tarantul!
Насколько я помню, скины делаются как bmp. Тогда Вам нужно создать промежуточную переменную типа TBitmap, вставить в нее картинку из буфера обмена, а потом Bitmap записать на диск:
var
bp: TBitmap;
Begin
bp:=TBitmap.Create;
bp.Assign(Clipboard); {Копирование картинки из буфера в битмап}
bp.SaveToFile('Имя_файла.bmp'); {Запись битмапа в файл}
End;
Ответ отправил: sir henry (статус: Академик)
Отправлен: 19.11.2005, 05:58
Отвечает: Schmak
Здравствуйте, Tarantul!
uses Clipbrd;
procedure TForm1.FormCreate(Sender: TObject);
var
bmp:TBitmap;
begin
bmp:=TBitmap.Create;
bmp.Assign(Clipboard);
bmp.SaveToFile('c:Screen.bmp');
bmp.Free;
end;
--------- Не всё то Windows, что висит!
Ответ отправил: Schmak (статус: 10-ый класс)
Отправлен: 19.11.2005, 09:58