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.
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
.
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
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) {