
Show Live Photos in your Xojo application This means that you can’t change EXIF data with this class, but you can take a template EXIF from one picture, change values and store it with another one. If you have EXIF data as a string or as a memory block can use the ExifTagsMBS class to read various attributes of your data, such as date, time or artist. You can of course continue to use older functions to point to picture file or picture in string/Memoryblock. This is a convenience functions which takes a picture. The output size and the picture can also be specified in the parameters of the function. The row and column as well as the positioning. To enhance your tables in DynaPDF you can now specify a user defined cell picture with the method " DynaPDFTableMBS.SetCellPicture". The path can then be drawn with the method "g.DrawPath". For example, we can draw curves and lines one after the other with methods. So we can use the "MoveToPoint" method to navigate to our starting point and draw it from there.

A path can be composed of different parts. With the new DynapdfGraphicsPathMBS class you can define paths. The component DynaPDF has some new features for you. In this article I want to introduce you the new functionalities from the MBS Xojo Plugins in version 20.2.
#WRITE PLUGINS IN XOJO WINDOWS#
But usually it may be better to just clear last reference to picture early when you don't need the big picture any more.įirst tests on Windows seem to indicate that on Windows for DirectDraw Xojo also uses a similar system as drawing as memory usage goes up when you draw a picture into another one. Usually you may never need to do this, but if you load a lot of images, keep them in array and draw them into smaller ones, you may need a lot of memory, so clearing the cache may be good, especially for a 32-bit application, where memory is tight. This frees the memory for the cache and does not draw something as the coordinates are negative. You can clear the cache for example with the following call: But the cache is invalidated and freed, when the graphics of the picture is used. And the cache stays there after the drawing for the case of another draw command. The CGImage consumes about the same memory size as the normal picture part. When the picture is drawn or some plugin function requests a CGImage for the picture, Xojo will create one and cache it. If the picture has a mask, there is a second CGBitmapContext for the mask, which doubles the memory usage. So the pixels are hold in a CGBitmapContext for the actual picture. On MacOS the picture class implementation for an editable picture uses both a CGBitmapContext for the pixels and a CGImage for drawing it. Let's check how the implementations have an effect on memory consumption. The Xojo picture class internally has several platform dependent implementations with slightly different behaviors.
#WRITE PLUGINS IN XOJO CODE#
setInt16ChannelData(ChannelIndex as Integer, Data as Memoryblock) as booleanĪs you see in the code we build two settings dictionary as we pass data in in 32-bit floating point numbers, but want to write it as 16bit integer to the file to save a bit of space: (more).

