Platforms to show: All Mac Windows Linux Cross-Platform

/Images/PNG/Write with PictureMBS


Required plugins for this example: MBS Images Plugin, MBS Main Plugin

You find this example project in your Plugins Download as a Xojo project file within the examples folder: /Images/PNG/Write with PictureMBS

This example is the version from Sun, 5th May 2018.

Project "Write with PictureMBS.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Delete"
Const kFileQuit = "&Quit"
Const kFileQuitShortcut = ""
EventHandler Sub Open() TestRGB TestGray End EventHandler
Sub TestGray() // Write a RGBA PNG file dim current as Picture = LogoMBS(500) // needs Main Plugin dim cpic as new PictureMBS(current) dim pic as new PictureMBS(current.Width, current.Height, PictureMBS.ImageFormatG) call pic.CopyPixels(cpic) // show in window window1.Backdrop = current // and write to file dim f as FolderItem = SpecialFolder.Desktop.Child("test gray.png") dim p as new PNGWriterMBS dim rows() as MemoryBlock dim h as integer = pic.Height-1 for i as integer = 0 to h rows.Append pic.RawRow(i) next p.Type = p.TypeGray p.Width = pic.Width p.bpc = 1 p.Rowbytes = pic.Width // one byte per pixel if p.OpenWriteDestination(f) then // open file if p.SetRows(rows) then // set picture to write if p.SetHeader(false, -1) then // setup file header if p.SetGamma(0) then // and default gamma if p.WriteInfo then // write file header if p.WriteRows then // write pixels if p.WriteEnd then // and write file end p = nil // cleanup f.Launch end if end if end if end if end if end if end if End Sub
Sub TestRGB() // Write a RGBA PNG file dim current as Picture = LogoMBS(500) // needs Main Plugin dim pic as new PictureMBS(current.Width, current.Height, PictureMBS.ImageFormatRGB) pic.DrawPictureRGB(current) // show in window window1.Backdrop = current // and write to file dim f as FolderItem = SpecialFolder.Desktop.Child("test rgb.png") dim p as new PNGWriterMBS dim rows() as MemoryBlock dim h as integer = pic.Height-1 for i as integer = 0 to h rows.Append pic.RawRow(i) next p.Type = p.TypeRGB p.Width = pic.Width p.bpc = 3 p.Rowbytes = pic.Width * 3 if p.OpenWriteDestination(f) then // open file if p.SetRows(rows) then // set picture to write if p.SetHeader(false, -1) then // setup file header if p.SetGamma(0) then // and default gamma if p.WriteInfo then // write file header if p.WriteRows then // write pixels if p.WriteEnd then // and write file end p = nil // cleanup f.Launch end if end if end if end if end if end if end if End Sub
End Class
MenuBar MenuBar1
MenuItem FileMenu = "&File"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Edit"
MenuItem EditUndo = "&Undo"
MenuItem UntitledMenu1 = "-"
MenuItem EditCut = "Cu&t"
MenuItem EditCopy = "&Copy"
MenuItem EditPaste = "&Paste"
MenuItem EditClear = "#App.kEditClear"
MenuItem UntitledMenu0 = "-"
MenuItem EditSelectAll = "Select &All"
End MenuBar
Class Window1 Inherits Window
End Class
End Project

See also:

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


The biggest plugin in space...