ImageEn for Delphi and C++ Builder ImageEn for Delphi and C++ Builder

 

ImageEn Forum
Profile    Join    Active Topics    Forum FAQ    Search this forumSearch
 All Forums
 ImageEn Library for Delphi, C++ and .Net
 ImageEn and IEvolution Support Forum
 copying/pasting bitmap

Note: You must be registered in order to post a reply.
To register, click here. Registration is FREE!

View 
UserName:
Password:
Format  Bold Italicized Underline  Align Left Centered Align Right  Horizontal Rule  Insert Hyperlink   Browse for an image to attach to your post Browse for a zip to attach to your post Insert Code  Insert Quote Insert List
   
Message 

 

Emoji
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Black Eye [B)]
Frown [:(] Shocked [:0] Angry [:(!] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

 
Check here to subscribe to this topic.
   

T O P I C    R E V I E W
pierrotsc Posted - Sep 15 2014 : 16:40:22
if i re-size a bitmap, copy it and paste it, it will paste with its original loaded dimensions. anyway to have it pasted with the new re-sized dimensions?
Thanks.
Pierre
9   L A T E S T    R E P L I E S    (Newest First)
pierrotsc Posted - Sep 16 2014 : 11:40:00
Bill, thanks. I was putting the command in the paste section. Not in the copy/cut section. Everything works perfectly now.
Thanks.
pierrotsc Posted - Sep 16 2014 : 10:59:21
Let me load your code and try it then.
Thank you
Pierre
w2m Posted - Sep 16 2014 : 10:33:37
It does work.

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
  Vcl.Buttons, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.ExtDlgs,
  ieview, imageenview, imageen, ievect;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Open1: TButton;
    AddLayer1: TButton;
    Rotate1: TSpeedButton;
    SelectLayers1: TSpeedButton;
    Copy1: TButton;
    Paste1: TButton;
    Clear1: TButton;
    OpenPictureDialog1: TOpenPictureDialog;
    Zoom1: TSpeedButton;
    ImageEnVect1: TImageEnVect;
    ImageEnVect2: TImageEnVect;
    DeleteLayer1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure SelectLayers1Click(Sender: TObject);
    procedure Rotate1Click(Sender: TObject);
    procedure Zoom1Click(Sender: TObject);
    procedure Open1Click(Sender: TObject);
    procedure AddLayer1Click(Sender: TObject);
    procedure Copy1Click(Sender: TObject);
    procedure Paste1Click(Sender: TObject);
    procedure Clear1Click(Sender: TObject);
    procedure DeleteLayer1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses imageenio, imageenproc, hyiedefs, hyieutils, iexHelperFunctions;

{$R *.dfm}

procedure TForm1.AddLayer1Click(Sender: TObject);
var
  iLayer: integer;
  iWidth: integer;
  iHeight: integer;
begin
  iLayer := ImageEnVect1.LayersAdd;
  iWidth := ImageEnVect1.IEBitmap.Width;
  iHeight := ImageEnVect1.IEBitmap.Height;
  { Render a transparent layer }
  ImageEnVect1.Layers[ilayer].Bitmap.IEInitialize(iWidth, iHeight, clBlack, True);
  ImageEnVect1.Update;
  ImageEnVect1.Gestures.Pan.Enabled := False;
  ImageEnVect1.Gestures.Zoom.Enabled := False;
  ImageEnVect1.Gestures.LayerRotate.Enabled := False;
  ImageEnVect1.Gestures.LayerMove.Enabled := False;
  ImageEnVect1.MouseInteract := [miMoveLayers, miResizeLayers];
  SelectLayers1.Down := True;
end;

procedure TForm1.Clear1Click(Sender: TObject);
begin
  ImageEnVect1.Clear;
  ImageEnVect1.LayersClear;
  ImageEnVect2.Clear;
  ImageEnVect2.LayersClear;
end;

procedure TForm1.Copy1Click(Sender: TObject);
begin
  ImageEnVect1.LayersFixRotations(ImageEnVect1.LayersCurrent);
  ImageEnVect1.LayersFixSizes(ImageEnVect1.LayersCurrent);
  ImageEnVect1.LayersFixBorders(ImageEnVect1.LayersCurrent);
  ImageEnVect1.Proc.SelCopyToClip();
end;

procedure TForm1.DeleteLayer1Click(Sender: TObject);
begin
  ImageEnVect1.LayersRemove(ImageEnVect1.LayersCurrent);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  IERegisterFormats;
  OpenPictureDialog1.Filter := GraphicFilter(TGraphic);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  IEUnregisterFormats;
end;

procedure TForm1.Open1Click(Sender: TObject);
begin
  if OpenPictureDialog1.Execute then
  begin
    ImageEnVect1.IO.LoadFromFile(OpenPictureDialog1.FileName);
  end;
end;

procedure TForm1.Paste1Click(Sender: TObject);
var
  iLayer: integer;
begin
  ImageEnVect2.Clear;
  ImageEnVect2.LayersClear;
  ImageEnVect2.Proc.SelPasteFromClip(True, True);
  iLayer := ImageEnVect1.LayersAdd;
  ImageEnVect1.Layers[ImageEnVect1.LayersCurrent].PosX := 100;
  ImageEnVect1.Layers[ImageEnVect1.LayersCurrent].PosY := 100;
  ImageEnVect1.Proc.SelPasteFromClip(True, True);
end;

procedure TForm1.Rotate1Click(Sender: TObject);
begin
  ImageEnVect1.Gestures.Pan.Enabled := False;
  ImageEnVect1.Gestures.Zoom.Enabled := False;
  ImageEnVect1.Gestures.LayerRotate.Enabled := True;
  ImageEnVect1.Gestures.LayerMove.Enabled := False;
  ImageEnVect1.MouseInteract := [miRotateLayers];
end;

procedure TForm1.SelectLayers1Click(Sender: TObject);
begin
  ImageEnVect1.Gestures.Pan.Enabled := False;
  ImageEnVect1.Gestures.Zoom.Enabled := False;
  ImageEnVect1.Gestures.LayerRotate.Enabled := False;
  ImageEnVect1.Gestures.LayerMove.Enabled := True;
  ImageEnVect1.MouseInteract := [miMoveLayers, miResizeLayers];
end;

procedure TForm1.Zoom1Click(Sender: TObject);
begin
  ImageEnVect1.Gestures.Pan.Enabled := True;
  ImageEnVect1.Gestures.Zoom.Enabled := True;
  ImageEnVect1.Gestures.LayerRotate.Enabled := False;
  ImageEnVect1.Gestures.LayerMove.Enabled := False;
  ImageEnVect1.MouseInteract := [miScroll, miZoom];
end;
end.



Bill Miller
Adirondack Software & Graphics
Email: w2m@hughes.net
EBook: http://www.imageen.com/ebook/
Custom Commercial ImageEn Development
pierrotsc Posted - Sep 16 2014 : 06:43:24
Tried it and it did not work.
Thanks for the advice though.
Pierre
w2m Posted - Sep 16 2014 : 06:34:46
Try calling TImageEnView.LayersFixRotations if you rotate a layer with the mouse or call TImageEnView.LayersFixSizes if you resize a layer with the mouse before the paste.

Bill Miller
Adirondack Software & Graphics
Email: w2m@hughes.net
EBook: http://www.imageen.com/ebook/
Custom Commercial ImageEn Development
pierrotsc Posted - Sep 16 2014 : 06:15:20
i click on the layer, then i see the grips. I just pick a grip and re-size it.
Pierre
xequte Posted - Sep 15 2014 : 22:50:46
Hi Pierre

What method are you using to resize the image? Just zoomed it onscreen?

Nigel
Xequte Software
www.xequte.com
nigel@xequte.com
pierrotsc Posted - Sep 15 2014 : 17:54:02
Copy: ImageEnVect.Proc.SelCopyToClip();
Paste : ImageEnVect.Proc.SelPasteFromClip(true, true);

Thanks
Pierre
w2m Posted - Sep 15 2014 : 16:51:16
No it does not... it pastes the resampled or resized image. Show some of your code.

Bill Miller
Adirondack Software & Graphics
Email: w2m@hughes.net
EBook: http://www.imageen.com/ebook/
Custom Commercial ImageEn Development