Platforms to show: All Mac Windows Linux Cross-Platform

/Images/JPEG/JPEGToString example


Required plugins for this example: MBS Images Plugin

You find this example project in your Plugins Download as a Xojo project file within the examples folder: /Images/JPEG/JPEGToString example

This example is the version from Mon, 5th May 2019.

Project "JPEGToString example.xojo_binary_project"
FileTypes
Filetype image/jpeg
End FileTypes
Class Window1 Inherits Window
Control preview Inherits Canvas
ControlInstance preview Inherits Canvas
EventHandler Sub Paint(g As Graphics, areas() As REALbasic.Rect) g.drawpicture current,0,0 End EventHandler
End Control
Control StaticText1 Inherits Label
ControlInstance StaticText1 Inherits Label
End Control
Control Quality Inherits Slider
ControlInstance Quality Inherits Slider
EventHandler Sub ValueChanged() value.text=str(me.value) run preview.Invalidate End EventHandler
End Control
Control value Inherits Label
ControlInstance value Inherits Label
End Control
Control size Inherits Label
ControlInstance size Inherits Label
End Control
Control CheckBox1 Inherits CheckBox
ControlInstance CheckBox1 Inherits CheckBox
EventHandler Sub Action() run End EventHandler
End Control
Control Canvas1 Inherits Canvas
ControlInstance Canvas1 Inherits Canvas
EventHandler Sub Paint(g As Graphics, areas() As REALbasic.Rect) g.drawpicture current,0,0 End EventHandler
End Control
Control StaticText2 Inherits Label
ControlInstance StaticText2 Inherits Label
End Control
EventHandler Sub Open() create run End EventHandler
Sub create() dim x as integer dim y as integer dim r as RGBSurface dim w as integer dim g as Graphics dim h as integer original = New Picture(preview.width,preview.height,32) r=original.RGBSurface w=original.width-1 h=original.height-1 g=original.Graphics for x=0 to w for y=0 to h g.pixel(x,y)=rgb(x*255/w,y*255/h,y*255/h) next next Canvas1.Backdrop=original End Sub
Sub run() // whether class or function, both do the same! if CheckBox1.Value then runClass else runFunction end if End Sub
Protected Sub runClass() dim je as JPEGExporterMBS dim ji as JPEGImporterMBS dim s as String je=new JPEGExporterMBS ji=new JPEGImporterMBS je.Picture=original je.Quality=Quality.Value je.Export s=je.Data if je.ErrorCode=0 then ji.Data=s ji.AllowDamaged=true ji.Import current=ji.Picture size.text=str(lenb(s))+" Bytes" else msgBox "Error on creating the JPEG file." end if End Sub
Protected Sub runFunction() dim s as string dim f as folderItem dim b as binaryStream // compress picture s=PictureToJPEGStringMBS(original,quality.value) f=SpecialFolder.Desktop.child("PictureToJPEGString.jpg") b=f.createBinaryFile("image/jpeg") if b<>nil then b.write s b.close end if current=JPEGStringToPictureMBS(s,true) size.text=str(len(s))+" Bytes" End Sub
Property current As picture
Property original As picture
End Class
MenuBar Menu
MenuItem UntitledMenu3 = ""
MenuItem UntitledMenu2 = "File"
MenuItem FileQuit = "Quit"
MenuItem UntitledMenu0 = "Edit"
MenuItem EditUndo = "Undo"
MenuItem UntitledMenu1 = "-"
MenuItem EditCut = "Cut"
MenuItem EditCopy = "Copy"
MenuItem EditPaste = "Paste"
MenuItem EditClear = "Clear"
End MenuBar
Class App Inherits Application
End Class
End Project

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


The biggest plugin in space...