Author |
Topic |
|
jrpcguru
USA
266 Posts |
Posted - Aug 10 2020 : 19:06:32
|
I have narrowed down this problem to ImageEnView1.LayersMerge([]); Actually there are two problems: 1. LayersMerge seems to be incredibly slow with a single layer 2. On an 8 megapixel image and larger, if a single shape layer is drawn that covers a large part of the image, when LayersMerge is done, the image is damaged.
Before: 8.4 megapixel image, 24 bit. The black redaction has been flattened already.
I then draw a large shape layer like this:
When I use LayersMerge this is the result:
If I add a second layer, it merges properly. If I use a smaller image to start, it merges properly. If I keep the single layer to less than half the height of the image, it seems to work properly.
If I insert a single image layer, it merges promptly and without error. A large text layer also merges properly.
I'm using D10.3 with the latest version of ImageEn. J.R. |
|
xequte
38615 Posts |
Posted - Aug 11 2020 : 01:56:56
|
Hi JR
I cannot reproduce that. Can you upload your image somewhere so I can use the exact steps as you.
Nigel Xequte Software www.imageen.com
|
|
|
jrpcguru
USA
266 Posts |
|
xequte
38615 Posts |
Posted - Aug 11 2020 : 19:38:49
|
Hi JR
That works fine for me. What are the specs of your system?
Nigel Xequte Software www.imageen.com
|
|
|
jrpcguru
USA
266 Posts |
Posted - Aug 11 2020 : 20:15:12
|
I forgot to run this test with your demo program. That might help me narrow down if something else in my program is causing the problem. My system is a Thinkpad with 16 gig of ram, Intel Core i7-6700HQ MB cpu @2.60ghz Quad Core. Looking at the tech details I note NVIDIA Quadro M1000M 4GB. I will have to see if the system switches back and forth with Intel Graphics like my last Thinkpad - to save battery power. Theoretically it should be running the NVIDIA since I'm not running on battery. I'll run the demo test tomorrow and my program, with and without battery. Thanks.
J.R. |
|
|
jrpcguru
USA
266 Posts |
Posted - Aug 12 2020 : 20:00:08
|
I confirmed that my ThinkPad has both Intel Graphics and the Nvidia graphics. In fact, this morning the Nvidia failed until I downloaded a driver update. However that isn't much help. Here are further observations:
I ran your demo program. Selected a shape layer and set it to a circle with line thickness of 20. The same defect happens.
I copied my program to my Lenova Yoga which just has Intel graphics. Same result.
My program stores the layer properties in a separate .INI file for each type of layer that I have designed. If the .INI is missing, it uses default values. Both with and without the .INI I get the same result.
attach/jrpcguru/2020812195144_ScanWithData.InsertCircle.zip 137.81 KB
I have attached an image of the demo program and also the layer properties in case that makes a difference. I'm guessing not since the result was the same with or without those properties and also with the demo program. The only unusual thing is the 20 pixel thickness of the line and the large size of the layer. Also, in the demo program, if I draw a second much smaller circle, it merges all correctly. I drew the same size circle in the demo program with only 10 line width and the same problem happened.
J.R. |
|
|
jrpcguru
USA
266 Posts |
Posted - Aug 13 2020 : 16:02:46
|
Just a small addition. I used the demo program with two large circles and they merged properly though slowly. Apparently a single large circle is the only way to generate this behavior.
J.R. |
|
|
jrpcguru
USA
266 Posts |
Posted - Aug 13 2020 : 16:08:28
|
I just used the demo program and tried to match the exact size of your circle. It worked properly. But when I made a larger circle, it failed.
J.R. |
|
|
xequte
38615 Posts |
Posted - Aug 19 2020 : 22:45:51
|
Hi JR
I can reproduce this with a very large shape (around 8000x8000 pixels). It looks like we have special handling for two layers, which we do not use when merging >2 layers. We're looking into a more efficient way to handle this.
Nigel Xequte Software www.imageen.com
|
|
|
|
Topic |
|