Platforms to show: All Mac Windows Linux Cross-Platform
PictureMBS class
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
class | Large Picture | MBS Images Plugin | 8.7 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
Using virtual memory you are only limited to hard disc space for swapping.
The Xojo picture class is limited to 2 GB and to width/height being in platform specific ranges. This class works with pictures up to 100 million pixels width and 2 billion pixels height.
- 53 properties
- property AlphaOffset as Integer
- property BitsPerComponent as Integer
- property BlackOffset as Integer
- property BlueOffset as Integer
- property Channel as String
- property ChannelCount as Integer
- property CyanOffset as Integer
- property DebugPicture as Picture
- property DebugPictureEnabled as Boolean
- property Factory as PictureFactoryMBS
- property FilePath as String
- property GrayOffset as Integer
- property GreenOffset as Integer
- property HasAlpha as Boolean
- property HasBlack as Boolean
- property HasBlue as Boolean
- property HasCyan as Boolean
- property HasGray as Boolean
- property HasGreen as Boolean
- property HasMagenta as Boolean
- property HasRed as Boolean
- property HasYellow as Boolean
- property Height as Integer
- property ImageFormat as Integer
- property ImageFormatString as String
- property IsCMYK as Boolean
- property IsGray as Boolean
- property IsMapping as Boolean
- property IsRGB as Boolean
- property MagentaOffset as Integer
- property MappingBlockSize as Int64
- property MappingFirstRow as Integer
- property MappingLastRow as Integer
- property MappingRows as Integer
- property Memory as Memoryblock
- property MemoryTarget as Memoryblock
- property Parent as PictureMBS
- property PixelSize as Integer
- property RedOffset as Integer
- property RowOffset as Integer
- property RowSize as Integer
- property Target as Picture
- property TotalSize as Int64
- property UnclippedHeight as Integer
- property Valid as Boolean
- property Width as Integer
- property YellowOffset as Integer
- property YieldTicks as Integer
- property DataStringInFormat(ImageFormat as Integer) as string
- property Row(index as Integer) as memoryblock
- property RowInFormat(index as Integer, ImageFormat as Integer) as memoryblock
- property RowInFormat(index as Integer, ImageFormat as Integer, InvertAlpha as boolean) as memoryblock
- property RowStringInFormat(index as Integer, ImageFormat as Integer) as string
- 133 methods
- method AlphaChannel as PictureMBS
- method ApplyMatrix(dest as PictureMBS, MatrixDimension as Integer, matrix() as Integer) as PictureMBS
- method ApplyMatrix(dest as PictureMBS, MatrixDimension as Integer, matrix() as Integer, delta as Integer) as PictureMBS
- method ApplyMatrix(dest as PictureMBS, MatrixDimension as Integer, matrix() as Integer, delta as Integer, ScaleFactor as Double) as PictureMBS
- method AutoLevel as boolean
- method AutoLevel(x as Integer, y as Integer, w as Integer, h as Integer) as boolean
- method BlackChannel as PictureMBS
- method BlueChannel as PictureMBS
- method BoxBlurFilter(dest as PictureMBS, Radius as Double, Iterations as Integer, Vertical as boolean = true, Horizontal as boolean = true) as PictureMBS
- method BoxBlurFilter(dest as PictureMBS, Radius as Double, Vertical as boolean = true, Horizontal as boolean = true) as PictureMBS
- method BoxBlurFractionalFilter(dest as PictureMBS, Radius as Double) as PictureMBS
- method Channel(index as Integer) as PictureMBS
- method ChannelOffset(index as integer) as integer
- method Channels as String()
- method ClearCache
- method ClearRect
- method ClearRect(x as Integer, y as Integer, width as Integer, height as Integer)
- method ClipImage as PictureMBS
- method ClipImage(x as Integer, y as Integer, width as Integer, height as Integer) as PictureMBS
- method Clone as PictureMBS
- method Close
- method CMYKChannels as PictureMBS
- method Combine(Image As PictureMBS, Mask As PictureMBS, DestX as Integer, DestY as Integer, SourceX as Integer, SourceY as Integer, Width as Integer, Height as Integer, UseColours As Boolean) as boolean
- method Combine(Image As PictureMBS, Mask As PictureMBS, DestX as Integer, DestY as Integer, SourceX as Integer, SourceY as Integer, Width as Integer, Height as Integer, UseColours As Boolean, ForeColour As color) as boolean
- method Combine(Image As PictureMBS, Mask As PictureMBS, DestX as Integer, DestY as Integer, SourceX as Integer, SourceY as Integer, Width as Integer, Height as Integer, UseColours As Boolean, ForeColour As color, MaskColour As color) as boolean
- method Combine(Image As PictureMBS, Mask As PictureMBS, DestX as Integer, DestY as Integer, SourceX as Integer, SourceY as Integer, Width as Integer, Height as Integer, UseColours As Boolean, ForeColour as Integer) as boolean
- method Combine(Image As PictureMBS, Mask As PictureMBS, DestX as Integer, DestY as Integer, SourceX as Integer, SourceY as Integer, Width as Integer, Height as Integer, UseColours As Boolean, ForeColour as Integer, MaskColour as Integer) as boolean
- method Combine(Image As PictureMBS, PreMultipliedSource as boolean, Mask As PictureMBS, DestX as Integer, DestY as Integer, SourceX as Integer, SourceY as Integer, Width as Integer, Height as Integer, UseColours As Boolean) as boolean
- method Combine(Image As PictureMBS, PreMultipliedSource as boolean, Mask As PictureMBS, DestX as Integer, DestY as Integer, SourceX as Integer, SourceY as Integer, Width as Integer, Height as Integer, UseColours As Boolean, ForeColour As color) as boolean
- method Combine(Image As PictureMBS, PreMultipliedSource as boolean, Mask As PictureMBS, DestX as Integer, DestY as Integer, SourceX as Integer, SourceY as Integer, Width as Integer, Height as Integer, UseColours As Boolean, ForeColour As color, MaskColour As color) as boolean
- method Combine(Image As PictureMBS, PreMultipliedSource as boolean, Mask As PictureMBS, DestX as Integer, DestY as Integer, SourceX as Integer, SourceY as Integer, Width as Integer, Height as Integer, UseColours As Boolean, ForeColour as Integer) as boolean
- method Combine(Image As PictureMBS, PreMultipliedSource as boolean, Mask As PictureMBS, DestX as Integer, DestY as Integer, SourceX as Integer, SourceY as Integer, Width as Integer, Height as Integer, UseColours As Boolean, ForeColour as Integer, MaskColour as Integer) as boolean
- method Combine(Mask As PictureMBS, X as Integer, Y as Integer, Width as Integer, Height as Integer, BackColour As color) as boolean
- method CompareImages(other as PictureMBS) as Int64
- method Constructor(Buf as MemoryBlock, width as Integer, height as Integer, ImageFormat as Integer, RowSize as Integer)
- method Constructor(pic as picture, UseAlpha as boolean=false)
- method Constructor(width as Integer, height as Integer, ImageFormat as Integer)
- method Constructor(width as Integer, height as Integer, ImageFormat as Integer, BlockSize as Int64, FilePath as folderitem)
- method CopyMask as picture
- method CopyMask(x as Integer, y as Integer, w as Integer, h as Integer) as picture
- method CopyPicture as picture
- method CopyPicture(x as Integer, y as Integer, w as Integer, h as Integer) as picture
- method CopyPictureWithAlpha as picture
- method CopyPictureWithAlpha(x as integer, y as integer, w as integer, h as integer) as picture
- method CopyPictureWithMask as picture
- method CopyPictureWithMask(x as Integer, y as Integer, w as Integer, h as Integer) as picture
- method CopyPixels(source as PictureMBS) as boolean
- method CopyPixels(source as PictureMBS, DestX as Integer, DestY as Integer, DestWidth as Integer, DestHeight as Integer) as boolean
- method CopyPixels(source as PictureMBS, DestX as Integer, DestY as Integer, DestWidth as Integer, DestHeight as Integer, SourceX as Integer, SourceY as Integer) as boolean
- method CreatePictureMBS(width as Integer, height as Integer, ImageFormat as Integer) as PictureMBS
- method CyanChannel as PictureMBS
- method DiffuseFilter(dest as PictureMBS, level as Integer) as PictureMBS
- method DitherFilter(dest as PictureMBS, matrix as Integer, levels as Integer) as PictureMBS
- method DrawMaskedPictureApplyMaskRGB(pic as picture, DestX as Integer, DestY as Integer, DestWidth as Integer, DestHeight as Integer, InvertMask as boolean=False)
- method DrawMaskedPictureApplyMaskRGB(pic as picture, DestX as Integer, DestY as Integer, DestWidth as Integer, DestHeight as Integer, SourceX as Integer, SourceY as Integer, InvertMask as boolean=False)
- method DrawMaskedPictureApplyMaskRGB(pic as picture, DestX as Integer, DestY as Integer, InvertMask as boolean=False)
- method DrawMaskedPictureApplyMaskRGB(pic as picture, InvertMask as boolean=False)
- method DrawMaskedPictureRGB(pic as picture, DestX as Integer, DestY as Integer, DestWidth as Integer, DestHeight as Integer, InvertMask as boolean=False)
- method DrawMaskedPictureRGB(pic as picture, DestX as Integer, DestY as Integer, DestWidth as Integer, DestHeight as Integer, SourceX as Integer, SourceY as Integer, InvertMask as boolean=False)
- method DrawMaskedPictureRGB(pic as picture, DestX as Integer, DestY as Integer, InvertMask as boolean=False)
- method DrawMaskedPictureRGB(pic as picture, InvertMask as boolean=False)
- method DrawPictureBlueToGrayChannel(pic as picture, DestX as Integer, DestY as Integer, DestWidth as Integer, DestHeight as Integer)
- method DrawPictureBlueToGrayChannel(pic as picture, DestX as Integer, DestY as Integer, DestWidth as Integer, DestHeight as Integer, SourceX as Integer, SourceY as Integer)
- method DrawPictureGreenToGrayChannel(pic as picture, DestX as Integer, DestY as Integer, DestWidth as Integer, DestHeight as Integer)
- method DrawPictureGreenToGrayChannel(pic as picture, DestX as Integer, DestY as Integer, DestWidth as Integer, DestHeight as Integer, SourceX as Integer, SourceY as Integer)
- method DrawPictureRedToGrayChannel(pic as picture, DestX as Integer, DestY as Integer, DestWidth as Integer, DestHeight as Integer)
- method DrawPictureRedToGrayChannel(pic as picture, DestX as Integer, DestY as Integer, DestWidth as Integer, DestHeight as Integer, SourceX as Integer, SourceY as Integer)
- method DrawPictureRGB(pic as picture)
- method DrawPictureRGB(pic as picture, DestX as Integer, DestY as Integer)
- method DrawPictureRGB(pic as picture, DestX as Integer, DestY as Integer, DestWidth as Integer, DestHeight as Integer)
- method DrawPictureRGB(pic as picture, DestX as Integer, DestY as Integer, DestWidth as Integer, DestHeight as Integer, SourceX as Integer, SourceY as Integer)
- method EngraveFilter(dest as PictureMBS, level as Integer) as PictureMBS
- method FillRect(value as Integer)
- method FillRect(Value as integer, Alpha as Integer)
- method FillRect(x as Integer, y as Integer, width as Integer, height as Integer, value as Integer)
- method FillRect(x as integer, y as integer, width as integer, height as integer, Value as integer, Alpha as Integer)
- method FillRectApply(FillColor as color, alpha as Integer) as boolean
- method FillRectApply(red as Integer, green as Integer, blue as Integer, alpha as Integer) as boolean
- method FillRectApply(x as Integer, y as Integer, width as Integer, height as Integer, FillColor as color, alpha as Integer) as boolean
- method FillRectApply(x as Integer, y as Integer, width as Integer, height as Integer, red as Integer, green as Integer, blue as Integer, alpha as Integer) as boolean
- method FillRectRandom
- method FillRectRandom(x as Integer, y as Integer, width as Integer, height as Integer)
- method FillRectRGB(FillColor as color)
- method FillRectRGB(FillColor as color, alpha as Integer)
- method FillRectRGB(red as Integer, green as Integer, blue as Integer)
- method FillRectRGB(red as Integer, green as Integer, blue as Integer, alpha as Integer)
- method FillRectRGB(x as Integer, y as Integer, width as Integer, height as Integer, FillColor as color)
- method FillRectRGB(x as Integer, y as Integer, width as Integer, height as Integer, FillColor as color, alpha as Integer)
- method FillRectRGB(x as Integer, y as Integer, width as Integer, height as Integer, red as Integer, green as Integer, blue as Integer)
- method FillRectRGB(x as Integer, y as Integer, width as Integer, height as Integer, red as Integer, green as Integer, blue as Integer, alpha as Integer)
- method GainFilter(dest as PictureMBS, gain as Double, bias as Double) as PictureMBS
- method GammaFilter(dest as PictureMBS, gamma as Double) as PictureMBS
- method GammaFilter(dest as PictureMBS, gamma as Double, alphaGamma as Double) as PictureMBS
- method GammaFilter(dest as PictureMBS, redGamma as Double, greenGamma as Double, blueGamma as Double) as PictureMBS
- method GammaFilter(dest as PictureMBS, redGamma as Double, greenGamma as Double, blueGamma as Double, alphaGamma as Double) as PictureMBS
- method GrayChannel as PictureMBS
- method GreenChannel as PictureMBS
- method HMirror
- method Invert
- method Invert(x as Integer, y as Integer, w as Integer, h as Integer)
- method MagentaChannel as PictureMBS
- method MapInRows(FirstRow as Integer, LastRow as Integer) as boolean
- method MirroredView as PictureMBS
- method Multiply
- method Multiply(x as integer, y as integer, width as integer, height as integer)
- method NeonFilter(dest as PictureMBS) as PictureMBS
- method OilFilter(dest as PictureMBS, levels as Integer, range as Integer) as PictureMBS
- method RawRow(index as Integer) as memoryblock
- method RawRowPtr(index as Integer) as Ptr
- method RedChannel as PictureMBS
- method RGBChannels as PictureMBS
- method RGBToGray(mode as Integer = 0) as boolean
- method Rotate(angle as Double, Red as Integer = 0, Green as Integer = 0, Blue as Integer = 0, Alpha as Integer = 0, Gray as Integer = 0, Cyan as Integer = 0, Magenta as Integer = 0, Yellow as Integer = 0, Black as Integer = 0) as PictureMBS
- method Rotate180
- method Rotate180(dest as PictureMBS=nil) as PictureMBS
- method Rotate270(dest as PictureMBS=nil) as PictureMBS
- method Rotate270slow(dest as PictureMBS=nil) as PictureMBS
- method Rotate90(dest as PictureMBS=nil) as PictureMBS
- method Rotate90slow(dest as PictureMBS=nil) as PictureMBS
- method Scale(source as PictureMBS, temp as PictureMBS, mode as Integer, width as Integer, height as Integer) as boolean
- method ScaleFast(source as PictureMBS, width as Integer, height as Integer) as boolean
- method ScaleMT(threads as Integer, source as PictureMBS, temp as PictureMBS, mode as Integer, width as Integer, height as Integer) as boolean
- method SolarizeFilter(dest as PictureMBS) as PictureMBS
- method StampFilter(dest as PictureMBS, radius as Double, threshold as Double, softness as Double, Black as Color, White as Color) as PictureMBS
- method TransferFilter(dest as PictureMBS, gray() as Integer) as PictureMBS
- method TransferFilter(dest as PictureMBS, gray() as Integer, alpha() as Integer) as PictureMBS
- method TransferFilter(dest as PictureMBS, red() as Integer, green() as Integer, blue() as Integer) as PictureMBS
- method TransferFilter(dest as PictureMBS, red() as Integer, green() as Integer, blue() as Integer, alpha() as Integer) as PictureMBS
- method Unmultiply
- method Unmultiply(x as integer, y as integer, width as integer, height as integer)
- method UnsharpFilter(origpixels as PictureMBS, Amount as Double, Threshold as Integer) as boolean
- method VMirror
- method YellowChannel as PictureMBS
- 5 shared methods
- shared method BlendPicturesWithMaskWithBackground(SourceImage as PictureMBS, DestImage as PictureMBS, Mask as PictureMBS, Result as PictureMBS, BackgroundColour as Color) as Boolean
- shared method BlendPicturesWithMaskWithBackground(SourceImage as PictureMBS, DestImage as PictureMBS, Mask as PictureMBS, Result as PictureMBS, BackgroundColour as Color, X As Integer, Y As Integer, Width As Integer, Height As Integer) as Boolean
- shared method CalculateMemory(width as Integer, height as Integer, theImageFormat as Integer) as Int64
- shared method CanAllocateImage(width as Integer, height as Integer, theImageFormat as Integer) as boolean
- shared method CreatePictureMBS(width as Integer, height as Integer, theImageFormat as Integer) as PictureMBS
- 88 constants
This class has no sub classes.
Blog Entries
- Multithreaded plugin functions can increase speed of Xojo application
- Colorspaces in MacOS with Xojo
- MonkeyBread Software Releases the MBS Xojo / Real Studio plug-ins in version 14.0
- CMYK Colors
- MBS Plugins 11.1 Release notes
- A day for bug fixing
- MBS REALbasic plug-ins version 9.5
- MBS REALbasic plug-ins version 9.4
- MBS REALbasic plug-ins version 9.3
- MonkeyBread Software Releases the MBS REALbasic plugins 8.7
Xojo Developer Magazine
- 8.3, page 22: Dropwords, Part 1, Developing a simple game by Marc Zeedar
- 8.2, page 25: Saving Data, A simple method for saving a data structure by Marc Zeedar
- 8.1, page 25: REALbasic Plugins, Getting started with the Plugin SDK
- 7.6, page 21: Think Big by Thinking Small, Build a platform, not an app by Marc Zeedar
- 7.4, page 8: News
- 7.3, page 9: News
- 16.2, page 9: News
- 12.2, page 10: News
Videos
Release notes
- Version 20.2
- Added ChannelOffset() to PictureMBS class.
- Added more kImageFormatG* constants for PictureMBS class to hold image data with 1 to 8 channels.
- Version 19.3
- Changed PictureMBS to allow more effects with mapped pictures. But performance may be slow.
- Version 19.1
- Added PictureMBS.FilePath property.
- Version 18.1
- Added check for PictureMBS.DataStringInFormat to raise exception if you try to request too big memory blocks.
- Added PictureMBS.Channel and PictureMBS.Channels for color channel names.
- Fixed bug in PictureMBS.MapInRows. Now returns error instead of freezing app is trying to allocate > 2GB in 32-bit application.
- Version 18.0
- Added Multiply and Unmultiply to PictureMBS class.
- Added PictureMBS.BlendPicturesWithMaskWithBackground function.
- Added PictureMBS.ClearCache.
- Added PictureMBS.CopyPictureWithAlpha function.
- Added PictureMBS.FillRect with alpha.
- Fixed issue where PictureMBS.ChannelCount was not set in all cases when creating one from a Xojo picture.
- Version 17.2
- Added PictureMBS MapInRows and RawRowPtr function.
Some methods using this class:
- PictureFactoryMBS.NewPictureMBS(Width as integer, Height as integer, ImageFormat as integer) as PictureMBS
Some properties using for this class:
- PictureMBS.Parent as PictureMBS
Some events using this class:
- PictureFactoryMBS.NewPictureMBS(Width as Integer, Height as Integer, ImageFormat as Integer) as PictureMBS
Some examples using this class:
- /DynaPDF/Raster/DynaPDF Raster to MemoryBlock
- /Images/LargePicture/JPEG Modes
- /Images/LargePicture/Matrix
- /Images/LargePicture/PictureMBS as a big memoryblock
- /Images/LargePicture/PictureMBS filters
- /Images/LargePicture/PictureMBS rotate benchmark
- /Images/LargePicture/PictureMBS scale
- /Images/LargePicture/Scaling Speed Test
- /Images/PNG/PNG Load To MemoryBlocks
- /Images/PNG/png with profile
Some related classes:
The items on this page are in the following plugins: MBS Images Plugin.
PictureMatrixMBS - PictureMinMaxMBS
