Re: [Lazarus] Image Copy and Load Fail.

2016-02-25 Thread 최경식
  
-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.

2016-02-25 Thread Mattias Gaertner
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.

2016-02-25 Thread 최경식
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