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
 "Not enough storage to process this command"

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
AndyColmes Posted - Mar 11 2017 : 23:10:53
I get this message a lot when doing just about anything like scrolling, zooming, etc. I assume this is a message from within ImageEn and mostly, I guess because I am dealing with large images. Is there a way to get around that, like increasing memory or cache somewhere?

Thanks in advance.

Andy
11   L A T E S T    R E P L I E S    (Newest First)
w2m Posted - Mar 16 2017 : 15:09:13
We can not help you very much unless you provide us with the images to test.

Bill Miller
Adirondack Software & Graphics
Email: w2m@hughes.net
EBook: http://www.imageen.com/ebook/
Custom Commercial ImageEn Development
AndyColmes Posted - Mar 16 2017 : 15:07:51
Hi Nigel,

Yes, I am able to reproduce the issue with a simple demo that has the 2 TImageEnVect, with one TImageEnVect using 2 layers. The total of 3 large images (basically the same size but with different colors) are loaded in the form. The one that causes the issue is the TImageEnVect with 2 layers. Scrolling using the mouse on it triggers the prompt. Not sure why since there is no code that can maybe interfere with the scrolling or zooming.

Andy
xequte Posted - Mar 14 2017 : 05:52:29
Hi Andy

Are you able to reproduce the issue in a simple demo?



Nigel
Xequte Software
www.xequte.com
nigel@xequte.com
AndyColmes Posted - Mar 13 2017 : 05:33:59
I compiled the demo to a 64-bit EXE and it worked better. The 32-bit version just cannot handle the images, regardless of what I cut off in code. Basically, I have 2 TImageEnVect. One of the TImageEnVect has 2 layers. So, there are a total of 3 large images loaded on the form; one copy in one TImageEnVect and 2 in the other with the layers. I synchronize the zooming and scrolling with the 2 TImageEnVects.

Andy
AndyColmes Posted - Mar 13 2017 : 01:17:48
Thanks very much Bill. I will try to create a stripped down demo with the images and see if I could duplicate the issue. I will upload the demo and the images when they are ready. Thanks again, Bill.

Andy
w2m Posted - Mar 12 2017 : 12:38:03
I just loaded my large image, then created 10 layers with the large image. Even with all this, the ImageEnVect can be scrolled, zoomed, panned, and layers can be moved. I am beginning to think either your images are much larger than mine, or you are doing something in code somewhere that causes the problem.

Lets find out, by loading your images in a simple demo without extra code to see if your problem persists.

Bill Miller
Adirondack Software & Graphics
Email: w2m@hughes.net
EBook: http://www.imageen.com/ebook/
Custom Commercial ImageEn Development
w2m Posted - Mar 12 2017 : 11:51:22
You can prevent some problems by using IO.Aborting:

ImageEnVect.IO.LoadFromFile(iFilename);
if ImageEnVect.IO.Aborting then
begin
  iNotification := NotificationCenter1.CreateNotification;
  try
    iNotification.Name := 'ErrorNotification';
    iNotification.Title := 'Error Opening Image';
    iNotification.AlertBody := 'There was an error opening the image.  The image can not be opened.';
    NotificationCenter1.PresentNotification(iNotification);
  finally
      iNotification.Free;
  end;
  Exit;
end;

Bill Miller
Adirondack Software & Graphics
Email: w2m@hughes.net
EBook: http://www.imageen.com/ebook/
Custom Commercial ImageEn Development
w2m Posted - Mar 12 2017 : 11:43:50
I just tested here with the largest image I have: 11,050 x 3,089 24-bit jpeg with no layers and one image shows memory used is 100,006 kb. I have no problems at all even in the IDE. Win10, 24gb ram.

You can calculate memory with:
var
  iBitDepth: Integer;
  idim: Integer;
  iMemorySize: string;
  iOriginalHeight: Integer;
  iOriginalWidth: Integer;

with ImageEnVect.IO.Params do
begin
  iOriginalHeight := OriginalWidth;
  iOriginalWidth := OriginalHeight;
  idim := (((iOriginalHeight * iBitDepth) + 31) div 32) * 4 * iOriginalWidth;
  // only one frame is calculated
  iMemorySize := iMemorySize + string(IEBytesToStr(idim, 1024)) + ' (' + iemsg(IEMSG_MEM) + ')';
  StatusBar1.Panels[15].Text := 'Memory: ' + iMemorySize;
end;

Bill Miller
Adirondack Software & Graphics
Email: w2m@hughes.net
EBook: http://www.imageen.com/ebook/
Custom Commercial ImageEn Development
w2m Posted - Mar 12 2017 : 10:15:19
So you get the error with only one image loaded? How big is the image?
Send me your image or post a link to it and I'll see what it does here if you wish.

Also if you have multiple TImageEnVect and some with multiple layers with very large images that may explain the problem especially if the images are huge.

Bill Miller
Adirondack Software & Graphics
Email: w2m@hughes.net
EBook: http://www.imageen.com/ebook/
Custom Commercial ImageEn Development
AndyColmes Posted - Mar 12 2017 : 10:11:52
Hello Bill, I don't run from the IDE and chances are that I will probably encounter memory issues if I do. The errors come from the EXE itself. I have not compiled it as Win64 yet, but I will probably give that a try if it helps.

My operating system is Windows 10 Pro 64-bit with 8 GB of RAM. I did turn LegacyBitmap off for all TImageEnVect on the form. There are 2 visible TImageEnVect . But I do have one TImageEnVect that has 2 layers loaded with large images.

If it is a memory constraint, it would be nice if ImageEn can notify when loading those images if they are either too large or not loadable. At which point maybe a prompt that those images should be resampled to smaller sizes?

It is definitely a show stopper when you get the error when running the EXE as there is really nothing you can do after that, other than killing the EXE via the taskbar.

Andy
w2m Posted - Mar 12 2017 : 09:41:12
I get this sometimes when running in the IDE, but no errors when run from the EXE. There is nothing I know of to fix this from within the IDE. You could also try building as Win 64.

Does the problem occur only when run from the IDE?
What is your operating system?
How much memory does the pc have?
Are you using TIEBitmap with LegacyBitmap := False?
TIEBitmap handles images using memory mapped file (for large images) or main memory. This allows handling of large images and to include input/output and image processing in a multi-threaded environment.

Another way to try to solve this if you are working with more than one large image at a time is to use thumbnails in TImageEnMView and only load the full image into TImageEnView from the filename stored in the TImageEnMView.MIO.Prams.

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