![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не удаётся сохранить картинку
Savek © (2012-06-09 14:31:00)Пишу небольшую утилиту, которая по таймеру должна проверять буфер обмена и при наличии там картинки сохранить её в файл. код простой
procedure TfrmGrab.Timer1Timer(Sender: TObject);
begin
if Clipboard.HasFormat(CF_BITMAP) or Clipboard.HasFormat(CF_PICTURE)
then begin
Image2.Picture.Assign(Clipboard);
JpegIm := TJpegImage.Create;
JpegIm.Assign(Image2.Picture.Bitmap);
JpegIm.SaveToFile(FotoPath+edit2.Text+'.jpg');
JpegIm.Destroy;
Clipboard.Clear;
end;
если в буфере формат CF_BITMAP картинка появляется в Image2 и сохраняется в файл, если же CF_PICTURE в Image2 она появляется, но на выходе получаю файл 0 байт. Помогите разобраться.
Savek (2012-06-12 11:16:00) [1]
> а Compress не нужен разве?
нужен, не дошли руки пока.
Похоже битмап нужно самому отрисовывать, тогда всё работает
JpegIm := TJpegImage.Create;
bmp:=TBitmap.Create;
bmp.Width:=Image2.Picture.Graphic.Width;
bmp.Height:=Image2.Picture.Graphic.Height;
bmp.Canvas.Draw(0,0,Image2.Picture.Graphic);
JpegIm.Assign(bmp);
Jpegim.CompressionQuality:=75;
JpegIm.Compress;
JpegIm.SaveToFile(FotoPath+edit2.Text+'.jpg');
JpegIm.Free;
bmp.Free;
stas (2012-06-11 19:50:00) [2]а Compress не нужен разве?
JpegIm.Assign(Image2.Picture.Bitmap);
JpegIm.Compress;
JpegIm.SaveToFile(FotoPath+edit2.Text+'.jpg');
Savek (2012-06-11 17:29:00) [3]на выходе нужен jpg, а в Picture может оказаться что-то другое, bmp, например
Давайте будем жрать! (2012-06-09 19:56:00) [4]Сохраняй в файл Picture, а не Picture.Bitmap.
Savek (2012-06-09 16:16:00) [5]В данном случае в буфер копируется рисунок из ячейки эксель
Savek (2012-06-09 16:13:00) [6]Это понятно.
картинка отображается в TImage, хотя TIMAGE.Picture.Bitmap пустой. Где-то она ведь есть? как её сохранить в файл?
Dimka Maslov (2012-06-09 15:53:00) [7]CF_PICTURE не является стандартным идентификатором формата данных в буфере обмена. Это исключительно дельфийская вещь, записывающая в в буфер обмена данные объектов класса TImage, который может содержать в себе не только битмапы, но и объекты других графических форматов, которые, в общем случае могут и не являться растровыми изображениями, которые могут быть сконевртированы в джипег