Overview

As CET manufacturers grow in scale regarding products, we also need to keep that in mind of GDI Ojects from Windows having a limited amount for use in showing each image. While using any ExploreDialog in CET, the amount of GDI Objects use can soar if the folder being navigated is full of products being shown. Hence changes are made to use DibImage instead of MemoryImage for that very purpose. It is strongly recommended to look through your code base and determine whether to migrate into using DibImage wherever large amounts of images are being shown. Here are some suggestions on how to migrate.

Read as DibImage from a source.

If the image is loaded from a source, it is best to save the image as a DibImage from the start. Utilizing the functions inside cm/win/DibImage.cm, which takes in either Url, RawImageData, MagickWand, Stream.

MemoryImage as a transient.

If beginning with from DibImage is too difficult, you can instead opt to convert MemoryImage to DibImage, then destroy it, else it depends on the garbage collector to clean up the GDI Object. You can utilize memToDibImg(MemoryImage) in cm/win/DibImage.cm

Compile Time Changes

class ExploreDialog

Changed getThumbnail() to return a DibImage instead of a MemoryImage to reduce GDI Object usage.

Old: extend public MemoryImage getThumbnail(Url file) {
New: extend public DibImage getThumbnail(Url file) {