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

 

ImageEn Forum
Profile    Join    Active Topics    Forum FAQ    Search this forumSearch
Forum membership is Free!  Click Join to sign-up
Username:
Password:
Save Password
Forgot your Password?

 All Forums
 ImageEn Library for Delphi, C++ and .Net
 ImageEn and IEvolution Support Forum
 What to use ImageEnView or ImageEnVect
 New Topic  Reply to Topic
Author Previous Topic Topic Next Topic  

yogiyang

India
727 Posts

Posted - Mar 16 2016 :  07:32:06  Show Profile  Reply
Hello,

I am embarking on a new project.

I am almost always confused as to what to use. ImageEnView or ImageEnVect?

Ok let me not a few major important features that I have to implement in my software:
- Allow user to drag and drop photos from Explorer in the Photo Palette which is ImageEnMView to add them to the palette, here we have to generate thumbnails of all the photos dragged and dropped and maintain them in a separate directory structure
- Allow users to drag and drop multiple selected photos from ImageEnMView to the Main View/Editor
- Based on what the number of photos dropped select a predefined layout and arrange the photos as per that layout (there can be more than one layout with same number of photos)
- Users can add text objects and these should be scaleable/rotateable interactively (i.e. by using mouse) and should stay editable after any of the operation like resize, rotate, etc.
- Every photo in the Main View/Editor should automatically have mask layer attached to it, here the size will be as per the calculated size based on layout
- Allow users to load vector shapes (I do not know as to which format should be allowed) by drag and drop and these shapes should be scaleable/rotateable without any quality loss and should stay as a vector object

So looking at these what is more suitable ImageEnView or ImageEnVect?

Please give as many suggestions as you all may have. This will help me decide and also implement a few features properly.

TIA




Yogi Yang

w2m

USA
1990 Posts

Posted - Mar 16 2016 :  08:11:48  Show Profile  Reply
It is simple Yogi. If you are not planning on using vectorial objects like ellipses, rectangles, text or polylines or other vectorisl objects then use TImageEnView. TimageEnView does not support vectorial objects, so based on your needs then you need to use TImageEnVect or another third party vectorial component. TImageEnVect is a descendent of TImageEnView so TImageEnVect will allow doing everything with images that TImageEnView can do while adding support for vectorial objects.

Objects (shapes) can be dragged and dropped, are re-scalable and can be rotated. Objects can be saved and loaded from tif files or objects can be saved and loaded from iev (ioIEV, *.iev) files or to (ioALL, *.all). TImageEnVect.SaveToFileAll saves all layers and vectorial objects in one single file. This is like consecutive calls to LayersSaveToXXX and SaveToFileIEV.

You app calls for using layers and objects so I problably use *.all files and use TImageEnVect.SaveToFileAll and TImageEnVect.LoadFromFileAll.

You can not use TImageEnView to achieve your needs because objects are not supported with TImageEnView.

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

yogiyang

India
727 Posts

Posted - Mar 18 2016 :  02:08:52  Show Profile  Reply
Hello Bill,

Thanks for your inputs. They will help me in my new project startup. :)
 
another third party vectorial component

Which third party library we can use with ImageEn?

Are there any possibilities of loading vector shapes from file formats like .dxf or .eps or .plt, etc.?

TIA



Yogi Yang
Go to Top of Page

w2m

USA
1990 Posts

Posted - Mar 18 2016 :  09:48:27  Show Profile  Reply
Sorry, I have no idea. There are a few, but you will have to research them. See Torry's website.

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

Uwe

284 Posts

Posted - Mar 18 2016 :  15:36:16  Show Profile  Reply
 
Which third party library we can use with ImageEn?


AggPas: http://www.crossgl.com/aggpas/index.html
Go to Top of Page

yogiyang

India
727 Posts

Posted - Mar 18 2016 :  23:59:24  Show Profile  Reply
Hello Uwe,

Thanks for your suggestion.

 
AggPas: http://www.crossgl.com/aggpas/index.html

I have checked this out but it does not take into consideration DPI, Color Profiles, etc. Everything seems to work at screen resolution. And it seems to be targeted for SVG.

Again I think it would not be possible to get ImageEn to work with and handle AggPas output.

On the second thought I think with a bit more work from my side I may be able to add Text/Type styling features to the app. Here I will get the user to build/create effects in a separate instance of and then insert that instance as a separate layer in ImageEn. But I will have to experiment with the DIP part before betting on this!

TIA



Yogi Yang
Go to Top of Page

Uwe

284 Posts

Posted - Mar 19 2016 :  10:18:30  Show Profile  Reply
 
Again I think it would not be possible to get ImageEn to work with and handle AggPas output.

I know for sure that the developer offered support for ImageEN. You'll probably have to check the source or try this (old code found on the web):

procedure TFrmMain.Button1Click( Sender: TObject );
begin
  if OpenPictureDialog1.Execute then
  begin
    ImageEnView1.IO.LoadFromFile( OpenPictureDialog1.FileName );
    ImageEnView1.Update;
  end;
end;

procedure TFrmMain.Button2Click( Sender: TObject );
begin
  // Attach vector graphics engine to an existing TBitmap from ImageEn
  // (must be pf24bit or pf32bit)
  if ImageEnView1.Bitmap <>nil then
  begin
    if VG.Attach( ImageEnView1.Bitmap ) then
    begin
      // Perform your own vector graphics tasks
      VG.Line( 10, 10, 20, 20 );
      VG.Font( 'Arial', 20 );
      VG.Text( 40, 40, 'Hello World !' );
    end;
  end;
  ImageEnView1.Update;
end;

procedure TFrmMain.FormCreate( Sender: TObject );
begin
  // Create instance of TAgg2D vector graphics engine
  VG := TAgg2D.Create;
end;

procedure TFrmMain.FormDestroy( Sender: TObject );
begin
  VG.Free;
end;



-Uwe

Go to Top of Page

yogiyang

India
727 Posts

Posted - Mar 21 2016 :  02:44:27  Show Profile  Reply
Hello Uwe,
Thanks for the code snippet. I will test it!

TIA



Yogi Yang
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
Jump To: