Re: [Lazarus] Image Copy and Load Fail.
-Original Message- From: "Mattias Gaertner"nc-gaert...@netcologne.de To: lazarus@lists.lazarus.freepascal.org; Cc: Sent: 2016-02-25 (목) 19:57:19 Subject: Re: [Lazarus] Image Copy and Load Fail. On Thu, 25 Feb 2016 19:28:57 +0900 (KST) 최경식 me357...@naver.com wrote: [...] procedure TForm1.Button3Click(Sender: TObject); var ImagetoSave : TImage; begin ImagetoSave := TImage.Create(Self); A TImage is a visual control that uses a graphic (e.g. a TBitmap) to paint. If you only need a memory image use TBitmap directly instead. This copies pixels (not attributes): var ImagetoSave : TBitmap; begin ImagetoSave := TBitmap.Create(Self); with ImagetoSave do begin PixelFormat := pf32bit; SetSize(Image1.Width,Image1.Height); Canvas.CopyRect(Rect(0,0,Image1.Width,Image1.Height), Image1.Picture.Bitmap.Canvas, Rect(0,0,Image1.Width,Image1.Height)); end; ImagetoSave.SaveToFile('/home/user/Image/copycreate.bmp'); FileListBox1.UpdateFileList; end; procedure TForm1.FileListBox1Change(Sender: TObject); begin if FileListBox1.ItemIndex -1 then begin //Loading Image3.Picture.bitmap.TransParentColor := clGreen; //Valuable! Hint: If you also want to copy attributes like TransparentColor, use ImagetoSave.Assign(Image1.Picture.Bitmap); Mattias -- Thank you. But the problem still occurs. I set the size to 4200 * 900 - copy - re-set the size. My platform is ARM-linux and OS is Lubuntu, Lazarus 1.0.10+dpkg (I tested newest version with same problem..) ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Image Copy and Load Fail.
On Thu, 25 Feb 2016 19:28:57 +0900 (KST) 최경식wrote: >[...] > procedure TForm1.Button3Click(Sender: TObject); > var > ImagetoSave : TImage; > begin > ImagetoSave := TImage.Create(Self); A TImage is a visual control that uses a graphic (e.g. a TBitmap) to paint. If you only need a memory image use TBitmap directly instead. This copies pixels (not attributes): var ImagetoSave : TBitmap; begin ImagetoSave := TBitmap.Create(Self); with ImagetoSave do begin PixelFormat := pf32bit; SetSize(Image1.Width,Image1.Height); Canvas.CopyRect(Rect(0,0,Image1.Width,Image1.Height), Image1.Picture.Bitmap.Canvas, Rect(0,0,Image1.Width,Image1.Height)); end; ImagetoSave.SaveToFile('/home/user/Image/copycreate.bmp'); FileListBox1.UpdateFileList; end; > procedure TForm1.FileListBox1Change(Sender: TObject); > begin > if FileListBox1.ItemIndex -1 then > begin > //Loading > Image3.Picture.bitmap.TransParentColor := clGreen; //Valuable! Hint: If you also want to copy attributes like TransparentColor, use ImagetoSave.Assign(Image1.Picture.Bitmap); Mattias -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] Image Copy and Load Fail.
hello everyone. I Loaded successfully after saving that i drawn. But i load fail after saving that i copied. (please see below code) This situation occurs in accordance with copy size. Below it is my code and i written some comments. [My code] procedure TForm1.Button2Click(Sender: TObject); begin //Drawing Image1.Picture.bitmap.PixelFormat := pf32bit; //Valuable! Image1.Picture.bitmap.SetSize(Image1.Width,Image1.Height); Image1.Picture.Bitmap.Canvas.TextOut(0,0,'test'); Image1.Invalidate; // Image1.Picture.Bitmap.SaveToFile('/home/user/Image/drawing.bmp'); FileListBox1.UpdateFileList; end; procedure TForm1.Button3Click(Sender: TObject); var ImagetoSave : TImage; begin ImagetoSave := TImage.Create(Self); with ImagetoSave.Picture.Bitmap do begin PixelFormat := pf32bit; SetSize(500,900); // this is where a problem is caused. if these size numbers are large, the problem occurrence, otherwise the problems does not occur. ImagetoSave.Width := Width; ImagetoSave.Height:= Height; Canvas.CopyRect(Rect(0,0,Image1.Width,Image1.Height), Image1.Picture.Bitmap.Canvas, Rect(0,0,Image1.Width,Image1.Height)); SetSize(Image1.Width,Image1.Height); ImagetoSave.Width := Width; ImagetoSave.Height:= Height; end; ImagetoSave.Picture.Bitmap.SaveToFile('/home/user/Image/copycreate.bmp'); FileListBox1.UpdateFileList; end; procedure TForm1.FileListBox1Change(Sender: TObject); begin if FileListBox1.ItemIndex -1 then begin //Loading Image3.Picture.bitmap.TransParentColor := clGreen; //Valuable! Image3.Picture.bitmap.LoadFromFile(FileListBox1.FileName); Image3.Width := Image3.Picture.bitmap.Width; Image3.Height := Image3.Picture.bitmap.Height; end; end; -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus