Platforms to show: All Mac Windows Linux Cross-Platform

/GraphicsMagick/GraphicsMagick/Console Text Drawing/Draw text in Console


Required plugins for this example: MBS GraphicsMagick Plugin

You find this example project in your Plugins Download as a Xojo project file within the examples folder: /GraphicsMagick/GraphicsMagick/Console Text Drawing/Draw text in Console

This example is the version from Sun, 15th May 2021.

Project "Draw text in Console.xojo_binary_project"
Class App Inherits ConsoleApplication
Const stBold = 1
Const stItalic = 4
Const stUnderline = 2
EventHandler Function Run(args() as String) As Integer // if you run in the RB IDE you get folders, so we need to move up dim projectfolder as FolderItem = SpecialFolder.Desktop dim f as FolderItem = projectfolder.Child("test.db") dim d as new REALSQLDatabase d.DatabaseFile = f if d.Connect then db = d dim g as new GMGeometryMBS(500,500) dim c as new GMColorRGBMBS("white") // white dim image as new GMImageMBS(g, c) image.strokeColor = new GMColorRGBMBS("red") // Outline color image.fillColor = new GMColorRGBMBS("green") // Fill color image.strokeWidth = 5 dim draw as GMGraphicsMBS = image.Graphics // Draw a circle draw.Circle(250, 250, 120, 150) draw.Draw WriteText image, 30,30, "Hello World", "Times", 24, stBold WriteText image, 30, 430, "Hello World normal", "Monaco", 12, 0 WriteText image, 230, 430, "Hello World italic", "Monaco", 12, stBold WriteText image, 30, 470, "Hello World underline", "Times", 12, 0 WriteText image, 230, 470, "Hello World bold", "Times", 12, stBold dim file as FolderItem = projectfolder.Child("output.jpg") image.quality = 100 image.magick = "JPEG" image.write(file) else print "Failed to open letter database." end if End EventHandler
Private Function WriteLetter(image as GMImageMBS, x as integer, y as integer, letter as string, font as string, size as integer, style as integer) As integer dim r as RecordSet = db.SQLSelect("select data from letter where code="+str(asc(letter))+" and font="""+font+""" and size="+str(size)+" and style="+str(style)) if r<>Nil and not r.EOF then dim data as string = r.Field("data").StringValue dim b as new GMBlobMBS(data) dim g as new GMGeometryMBS dim img as new GMImageMBS(b,g,"PNG") if img.isValid then call image.compositeXY(img, x, y, GMImageMBS.CopyCompositeOp) Return img.width end if end if End Function
Private Sub WriteText(image as GMImageMBS, x as integer, y as integer, text as string, font as string, size as integer, style as integer) text = ConvertEncoding(text, encodings.utf8) dim c as integer = len(text) for i as integer = 1 to c dim dx as integer = WriteLetter(image, x, y, mid(text,i,1), font, size, style) x = x + dx next End Sub
Property Private db As REALSQLDatabase
End Class
End Project

See also:

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


The biggest plugin in space...