есть функция, пишет в image нужный текст и сохраняет картинку на диск в jpg формат. но работает либо через раз, либо только один раз, либо вообще не работает. код: Code: var hgt:integer; jpeg:TJpegImage; begin // заливаем картинку черным цветом. вроде работает, но правильно ли? form1.image1.Canvas.Brush.Color:=clBlack; form1.Image1.Canvas.Rectangle(form1.Image1.ClientRect); form1.Image1.Repaint; //тут я пишу на картинке что нужно // сохраняю картинку в jpg. jpeg:=tjpegimage.Create; jpeg.CompressionQuality:=65; jpeg.Assign(form1.image1.Picture.Graphic); if fileexists('123.jpeg')<>false then SysUtils.DeleteFile('123.jpeg'); jpeg.SaveToFile('123.jpeg'); // тут вылетает ошибка Out of system resources jpeg.Free; result:='123.jpg'; end; что я делаю не так? как правильно сохранить в жпг из имэйджа?
не помогло. сделал сохранение так: Code: jpeg:=tjpegimage.Create; BitMap := TBitMap.Create; BitMap.Width := 200; BitMap.Height := 300; BitMap.Canvas.CopyRect(BitMap.Canvas.ClipRect,form1.Image1.Canvas,form1.Image1.Canvas.ClipRect); Jpeg.Assign(Bitmap); Jpeg.PixelFormat := jf24Bit; Jpeg.Compress; jpeg.SaveToFile('123.jpeg'); ошибка вроде пропала, но часто сохраняет пустой белый лист, хотя в image рисуется всё правильно. ах да, если процедуру вызываю из главного потока - сохраняется всё отлично. если из какого-либо другого - белый лист
отбой. отказался от тупорылого image и заюзал pngobject. и размер меньше, и нечего конвертить в жпг ненужно.
Делал когда-то это...просто написать текст в image и сохранить - PHP: Image:=TImage.Create(nil); image.Canvas.TextOut(30, 0, Edit1.text[i]); image.Picture.SaveToFile(edit1.text+'/'+inttostr(i2)+'.jpg'); image.Free;
2 090808 ты создал мего гениальную вещь. Дай отгадаю, если тебе нужен сахар(но его нет), а есть соль, то ты наверное пересыпаешь соль в сахарницу, после чего радуешься тому что получил сахар? Если выражать более проще - то у тебя получается bmp файл с расширением jpg и следовательно огромного размера (т.к. нет сжатия). С таким успехом можно сохранять текст с расширением .rar и говорить что я создал архив
ды еслибы. image ругается, что такой файл уже есть и не перезаписывает его, вызывая исключительную ситуацию. такие дела я ведь четко указал, что мне нужно ковертить в жпг