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

Вниз

Не удаётся сохранить картинку   Найти похожие ветки 

 
Savek   (2012-06-09 14:31) [0]

Пишу небольшую утилиту, которая по таймеру должна проверять буфер обмена и при наличии там картинки сохранить её в файл. код простой

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 байт. Помогите разобраться.


 
Dimka Maslov ©   (2012-06-09 15:53) [1]

CF_PICTURE не является стандартным идентификатором формата данных в буфере обмена. Это исключительно дельфийская вещь, записывающая в в буфер обмена данные объектов класса TImage, который может содержать в себе не только битмапы, но и объекты других графических форматов, которые, в общем случае могут и не являться растровыми изображениями, которые могут быть сконевртированы в джипег


 
Savek   (2012-06-09 16:13) [2]

Это понятно.
картинка отображается в TImage, хотя TIMAGE.Picture.Bitmap пустой. Где-то она ведь есть? как её сохранить в файл?


 
Savek   (2012-06-09 16:16) [3]

В данном случае в буфер копируется рисунок из ячейки эксель


 
Давайте будем жрать!   (2012-06-09 19:56) [4]

Сохраняй в файл Picture, а не Picture.Bitmap.


 
Savek   (2012-06-11 17:29) [5]

на выходе нужен jpg, а в Picture может оказаться что-то другое, bmp, например


 
stas ©   (2012-06-11 19:50) [6]

а Compress не нужен разве?
  JpegIm.Assign(Image2.Picture.Bitmap);
  JpegIm.Compress;
  JpegIm.SaveToFile(FotoPath+edit2.Text+".jpg");


 
Savek   (2012-06-12 11:16) [7]


> а 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;



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

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

Наверх




Память: 0.48 MB
Время: 0.058 c
2-1338406764
well
2012-05-30 23:39
2013.03.22
CBuilder 6 Отображение немецких символов в TEdit


6-1258570088
lexel
2009-11-18 21:48
2013.03.22
Свободен домен или нет


2-1330700037
German
2012-03-02 18:53
2013.03.22
МойДатаСет


2-1339062776
vasa777
2012-06-07 13:52
2013.03.22
экспорты


15-1328614093
Denissoft
2012-02-07 15:28
2013.03.22
Вопрос Насчет сайта!