Xojo Conferences
XDCMay2019MiamiUSA

Platforms to show: All Mac Windows Linux Cross-Platform

PictureReaderMBS class

Type Topic Plugin Version macOS Windows Linux Console & Web iOS
class Graphics & Pictures MBS Picture Plugin 6.5 Yes Yes Yes Yes No
Function: A class to read picture data as a memoryblock.
Example:
dim pic as Picture = LogoMBS(500)
dim p as PictureReaderMBS
dim m as MemoryBlock
dim r,g,b,rRow,gRow,bRow,h1,w1,x,y,bpp as Integer

// Create a new picture reader
p=NewPictureReaderMBS(pic)

h1=p.Height-1
w1=p.Width-1

bpp=p.BytesPerPixel
rRow=p.RedOffset
gRow=p.GreenOffset
bRow=p.BlueOffset
// in each row the red, blue and green channels have different offsets.
// but offsets are platform dependend

dim sum as Double

for y=0 to h1
// Get data in memory. This Memoryblock has a size property of 0!
m=p.Data(y)
r=rRow
g=gRow
b=bRow

for x=0 to w1

sum = sum + m.UInt8Value(r)
sum = sum + m.UInt8Value(g)
sum = sum + m.UInt8Value(b)

r=r+bpp
g=g+bpp
b=b+bpp
next

next

// show the sum of all pixels:
MsgBox "Sum with plugin is: "+str(sum)


// now try same in RB code:

dim surface as RGBSurface = pic.RGBSurface
dim c as color

sum = 0.0

for y=0 to h1
for x=0 to w1
c = surface.Pixel(x,y)

sum = sum + c.red
sum = sum + c.Green
sum = sum + c.Blue

next

next

surface = nil

MsgBox "Sum with RB Code is: "+str(sum)
quit
Notes: This is the same code the plugin uses to read pictures.

Feedback, Comments & Corrections

This class has no sub classes.

Some useful global functions for this class:

Some examples which use this class:

Blog Entries


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


PictureMinMaxMBS   -   PictureSepiaMBS




Links
MBS Xojo Plugins