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
 Resampling images

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
Dany Posted - Jul 04 2018 : 08:41:43
Hello!

I am really new in images processing so very sorry if this is to basic question. I am adding a collection of images from any source in a ImageEnMView but I want to insert each image pre-processed in the same way as WhatsApp does. For example, the two attached files, ORIGINAL is the one I catched with cell camera, and RESAMPLED is the result of sendig ORIGINAL via WhatsApp. It changed from 2MB to 100KB but if I print RESAMPLE I get an acceptable quality for reading, and full proportional.





I have to insert each image into the collection with the minor possible size but with acceptable printing quality and full proportional. Is it good example for doing this?

Thank you!
8   L A T E S T    R E P L I E S    (Newest First)
xequte Posted - Jul 16 2018 : 01:47:44
Hi Dany

OnImageAdded is not called for loading of individual frames of an image, but we will address that for 8.0.2. It is is called *after* the insertion into TImageEnMView, but from a performance perspective (as the image is already loaded into the bitmap) it should not make any difference if you use "GetBitmap" to modify the added bitmap.

Nigel
Xequte Software
www.imageen.com
w2m Posted - Jul 13 2018 : 14:13:11
If I knew how to do that I would have done so. In looking over the events in the help file I can not determine if there is an event that executes before the bitmap is added. I may have missed something, so have a look for yourself.

Bill Miller
Adirondack Software & Graphics
Email: w2m@hughes.net
EBook: http://www.imageen.com/ebook/
Custom Commercial ImageEn Development
Dany Posted - Jul 13 2018 : 14:01:49
Many thaks for your example Bill, and very sorry for asking again but what I am searchig for is which is the unique point (if any) in where I can process any image that is added to ImageEnMView, regardless the procedure used for adding it. For example, you can insert images doing ImgNavigate.MIO.LoadFromFile(..) or doing ImgNavigate.MIO.LoadFromFileTIFF(..) or doing ImgNavigate.MIO.Acquire; in all the cases (I guess) the component will add one by one, the images that are comming from each source. Do we have at that point an oportunity to process each one just before? (very sorry for my poor english !!!).
w2m Posted - Jul 13 2018 : 11:12:23
procedure TForm1.Open1Click(Sender: TObject);
var
  iImageENIO: TImageEnIO;
  iIEBitmap: TIEBitmap;
begin
  if OpenPictureDialog1.Execute then
  begin
    iImageENIO := TImageEnIO.Create(Self);
    try
      iIEBitmap := TIEBitmap.Create;
      try
        iImageENIO.AttachedIEBitmap := iIEBitmap;
        { Load the bitmap}
        iImageENIO.LoadFromFile(OpenPictureDialog1.FileName);
        { Resample the bitmap }
        iIEBitmap.Resample(1000, 1000, rfLanczos3, True, True);
        { Add the bitmap }
        ImageEnMView1.AppendImage(iIEBitmap);
        StatusBar1.Panels[0].Text :=
          ExtractFileDir(OpenPictureDialog1.FileName);
        StatusBar1.Panels[1].Text :=
          ExtractFileName(OpenPictureDialog1.FileName);
        StatusBar1.Panels[2].Text := 'Width: ' + IntToStr(iIEBitmap.Width);
        StatusBar1.Panels[3].Text := 'Height: ' + IntToStr(iIEBitmap.Height);
      finally
        iIEBitmap.Free;
      end;
    finally
      iImageENIO.Free;
    end;
  end;
end;

Bill Miller
Adirondack Software & Graphics
Email: w2m@hughes.net
EBook: http://www.imageen.com/ebook/
Custom Commercial ImageEn Development
Dany Posted - Jul 12 2018 : 13:52:24
Yes I saw it, but it is giving an index as the only one parameter, so is "after" the image was added. I mean, for example if I load from a TIFF that has lots of images, may I process each one just before it will be added to the component?
w2m Posted - Jul 12 2018 : 09:35:18
TImageEnMView.OnImageAdded

Declaration

property OnImageAdded: TIEMViewImageNotifyEvent;

Description

Occurs whenever an image has been added to the control.

Bill Miller
Adirondack Software & Graphics
Email: w2m@hughes.net
EBook: http://www.imageen.com/ebook/
Custom Commercial ImageEn Development
Dany Posted - Jul 12 2018 : 09:16:54
Thank you!. I see there are more than one way for adding images on a TImageEnMView component (e.g. loading a snapshot, loading a file, etc etc); is there a unique instance in where we can process each image (for resampling) just before it is added (regardless the way images are being added)?
xequte Posted - Jul 04 2018 : 21:42:03
You can use Resample to proportionally reduce the size of images:

https://www.imageen.com/help/TImageEnProc.Resample.html


// Resize the image so that it is no higher or wider than 1000px, but maintains the original aspect ratio (e.g. a 4:3 portrait image would have the new dimensions 100 x 75)
ImageEnView1.Proc.Resample(1000, 1000, rfLanczos3, True);




Nigel
Xequte Software
www.imageen.com