Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизНе удаётся сохранить картинку Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.085 c