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
 Getting an undo into a TIEBitmap object

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
nwscomps Posted - Aug 09 2011 : 16:35:52
Hello, is there any way to get an undo saved by imageEn into a TIEBitmap object without having to actually restore the undo in the imageenview component? What I want to do is to use a TIEBitmap from the Undo history as a feed for the ImageEnPaintEngine in order to emulate the photoshop history tool. If possible I should be able also to get the alpha channel of the undo.
Thanks for any answer.

Francesco Savastano
Nwscomps.com
Add-ons for the ImageEn Library
7   L A T E S T    R E P L I E S    (Newest First)
fab Posted - Aug 11 2011 : 01:33:13
>I would expect that I can retrieve undo information from any undo history of any
>imageenproc, without necessarily having to undo / redo.

This is exactly what UndoAt does (and AutoUndo is True).

>> Why do I need to use a separate imageenproc?

I don't know all your necessities (layers, etc...) and I proposed it to have clearer code. You can of course use also:

ImageEnView.Proc.AttachedIEBitmap := myBitmap;
ImageEnView.Proc.UndoAt(2);
ImageEnView.Proc.AttachedImageEn := ImageEnView;

nwscomps Posted - Aug 10 2011 : 15:43:56
I would expect that I can retrieve undo information from any undo history of any imageenproc, without necessarily having to undo / redo.
LEt's say I have an imageenview with selections and layers. Now I have moved layers and selections as well as applied different filters / corrections, every operation is registered in the imageenview's embedded imageenproc undo list, why can't I access this history and use its content? Why do I need to use a separate imageenproc? I guess the answer is this is the way it was developed, but this is the point maybe it is too restrictive?

Francesco Savastano
Nwscomps.com
Add-ons for the ImageEn Library
fab Posted - Aug 10 2011 : 14:44:33
No, you have to create a new TImageEnProc, and use only AttachedIEBitmap:

MyImageEnProc.AttachedIEBitmap := myBitmap;
MyImageEnProc.UndoAt(2);
MyImageEnProc.AttachedIEBitmap := ImageEnView1.IEBitmap;

And do not use ImageEnView.Proc.

>Also how do I check if the current undo is of type image, vector, selection or other?

Look at TImageEnProc.UndoPeekAt method.
nwscomps Posted - Aug 10 2011 : 10:33:49
Hi Fabrizio, thanks for the answer. So if I do the following it will be ok?

imageenview1.proc.attachedIEBitmap := mybitmap;
try
imageenview1.proc.undoat(2);
finally
imageenview1.proc.AttachedImageEn := imageenview1;
end;

Also how do I check if the current undo is of type image, vector, selection or other?

Thanks

Francesco Savastano
Nwscomps.com
Add-ons for the ImageEn Library
fab Posted - Aug 10 2011 : 06:08:36
There is only TImageEnProc.UndoAt, which allows to specify the saved image. Of course it replaces the currently attached TIEBitmap (and you can change it temporally to your new TIEBitmap destination).
nwscomps Posted - Aug 10 2011 : 05:32:19
Hi Fabrizio,
the problem is that I do not want to enable an undo history undo on a TIEBitmap, I just want to be able to retrieve the undo information from the history of a Timageenview (with embedded TImageenproc) and have it saved into a TIEBitmap. To explain better this is the scenario:
1) I have a Timageenview on a form with undo / redo capabilities enabled
2) Let's say I paint 5 times on the background layer
3) I want now to have access to the image stored in the undo at the position 2 in the history
4) I use this history image for my purposes (in my case a new painting)

So I am bound to the imageenview embedded imageenproc for the history. It is not useful to have a TIEBitmap with its own undo history in my case.

All what I look for is some method such as: Imageenview1.Proc.GetHistoryUndoAt(myPosition, myIEBitmap)

Also since the undo could be with alpha channel I would need the alpha channel as well. I hope it makes sense.



Francesco Savastano
Nwscomps.com
Add-ons for the ImageEn Library
fab Posted - Aug 10 2011 : 00:23:18
Hello Francesco,
Undo/Redo is handled by TImageEnProc (not by TImageEnView that just embeds TImageEnProc), so you could attach a TImageEnProc to TIEBitmap, and use the Undo/Redo:

ImageEnProc.AttachedIEBitmap := yourBitmap;

Now you can call Undo/Redo and other related methods:

ImageEnProc.Undo();