MBS Xojo Developer Conference and Training
Join us from 3rd to 6th May 2017 in Berlin, Germany.

Platforms to show: All Mac Windows Linux Cross-Platform

CGCreateImageFromJPEGDataProviderMBS(dataprovider as Variant, decode as memoryblock, shouldInterpolate as boolean, intent as Integer) as CGImageMBS
global method, CoreGraphics, MBS MacOSXCG Plugin (CG),
Plugin version: 3.3, Mac: Yes, Win: No, Linux: No, Console & Web: Yes, Feedback.

Function: Creates a new CGImage with JPEG data.
Example:
// Shows moon.jpg from the desktop folder
// shows in the window title if i,p or u is nil.

Sub Mainwindow.Paint(g As Graphics)
dim f as FolderItem
dim p as CGDataProviderMBS
dim i as CGImageMBS

f=SpecialFolder.Desktop.Child("moon.jpg")
p=CGDataProviderMBS.CreateWithFile(f)
if p=nil then
Title="p=nil"
else
i=CGCreateImageFromJPEGDataProviderMBS(p,nil,true,0)

if i=nil then
Title="i=nil"
else
window1.CGContextMBS.DrawPicture i,CGMakeRectMBS(0,0,i.Width,i.Height)
end if
end if

End Sub
Notes:
Dataprovider must be a CGDataProviderMBS object.

Parameters:

dataprovider:
A reference to a data provider supplying JPEG-encoded data.

decode:
Pass the decode array for the image. In the decode array, for each color component in the source color space, you provide a pair of values denoting the upper and lower limits of a range. For example, the decode array for a source image in the RGB color space would contain six entries total, consisting of one pair each for red, green, and blue. When the image is rendered, Quartz uses a linear transform to map the original component value into a relative number within your designated range that is appropriate for the destination color space. If you do not want to allow remapping of the image's color values, pass nil for the decode array. The memoryblock for the array needs to be filled with double values.

shouldInterpolate:
Pass true if interpolation should occur; otherwise, pass false . The interpolation setting specifies whether Quartz should apply a pixel-smoothing algorithm to the image. If you pass false , the image may appear jagged or pixelated when drawn on an output device with higher resolution than the image data.

intent:
Pass a CGColorRenderingIntent value specifying how Quartz should display colors in the image that are not located within the current color space of the graphics context. The rendering intent determines the exact method used to map colors from one color space to another.

Some examples using this method:

CGCreateImageFromPNGDataProviderMBS(dataprovider as Variant, decode as memoryblock, shouldInterpolate as boolean, intent as Integer) as CGImageMBS
global method, CoreGraphics, MBS MacOSXCG Plugin (CG),
Plugin version: 3.3, Mac: Yes, Win: No, Linux: No, Console & Web: Yes, Feedback.

Function: Creates a new CGImage with PNG data.
Notes:
Dataprovider must be a CGDataProviderMBS object.

Parameters:

dataprovider:
A reference to a data provider supplying JPEG-encoded data.

decode:
Pass the decode array for the image. In the decode array, for each color component in the source color space, you provide a pair of values denoting the upper and lower limits of a range. For example, the decode array for a source image in the RGB color space would contain six entries total, consisting of one pair each for red, green, and blue. When the image is rendered, Quartz uses a linear transform to map the original component value into a relative number within your designated range that is appropriate for the destination color space. If you do not want to allow remapping of the image's color values, pass nil for the decode array. The memoryblock for the array needs to be filled with double values.

shouldInterpolate:
Pass true if interpolation should occur; otherwise, pass false . The interpolation setting specifies whether Quartz should apply a pixel-smoothing algorithm to the image. If you pass false , the image may appear jagged or pixelated when drawn on an output device with higher resolution than the image data.

intent:
Pass a CGColorRenderingIntent value specifying how Quartz should display colors in the image that are not located within the current color space of the graphics context. The rendering intent determines the exact method used to map colors from one color space to another.
CGMakeSizeMBS(width as Double, height as Double) as CGSizeMBS
global method, CoreGraphics, MBS MacOSXCG Plugin (CGGeometry),
Plugin version: 2.7, Mac: Yes, Win: No, Linux: No, Console & Web: Yes, Feedback.

Function: Returns a new CGSizeMBS object.

Some examples using this method:

CGNewPDFDocumentMBS(consumer as CGDataConsumerMBS, MediaBox as CGRectMBS, title as string, author as string, creator as string) as CGPDFContextMBS
global method, CoreGraphics, MBS MacOSXCG Plugin (CGPDF),
Plugin version: 12.0, Mac: Yes, Win: No, Linux: No, Console & Web: Yes, Feedback.

Function: Creates a PDF document.
Notes:
Title, author and creator are all optional.
Requires Mac OS X to work.
Keep yourself a reference to the consumer object so RB does not release it resulting in a crash.

Some examples using this method:

The items on this page are in the following plugins: MBS MacOSXCG Plugin.




Links
MBS FileMaker tutorial videos