| Components | All | New | MacOS | Windows | Linux | iOS | ||||
| Examples | Mac & Win | Server | Client | Guides | Statistic | FMM | Blog | Deprecated | Old | |
GMImage.WriteToFile
Write single image frame to a file.
| Component | Version | macOS | Windows | Linux | Server | iOS SDK |
| GraphicsMagick | 2.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
MBS( "GMImage.WriteToFile"; ImageRef; Path ) More
Parameters
| Parameter | Description | Example |
|---|---|---|
| ImageRef | The image reference number. | 1 |
| Path | A platform specific filepath where to write the image. | "C:\Test.jpg" |
Result
Returns "OK" on success.
Description
Write single image frame to a file.See also GMImage.WriteToPNGContainer, GMImage.WriteToBMPContainer, GMImage.WriteToTiffContainer, GMImage.WriteToJPEGContainer and GMImage.WriteToGIFContainer.
On Windows the file APIs in GraphicsMagick only do ANSI file paths. MacOS and Linux can do full Unicode.
This function requires a native path. Use Path.FileMakerPathToNativePath to convert a FileMaker path to a native path if required. If you like to have the user choose the path, you can use FileDialog functions.
For Server be aware that server has limited permissions and may not be able to access all files on a computer.
Examples
Save file to Bob's desktop as GIF file on macOS:
MBS( "GMImage.WriteToFile"; $BigImageRef; "/Users/Bob/Desktop/test.gif" )
Save file to Bob's desktop as JPG file on Windows:
MBS( "GMImage.WriteToFile"; $BigImageRef; "C:\Data\logo.jpg" )
Convert image to 1 bit TIFF:
# Load from container
Set Variable [ $Image ; Value: MBS("GMImage.NewFromContainer"; GraphicsMagick::image); ]
# make black and white with threshold
Set Variable [ $Result ; Value: MBS("GMImage.Threshold";$Image; 127); ]
# mark as monochrome image
Set Variable [ $Result ; Value: MBS("GMImage.SetMonochrome";$Image; 1); ]
# set type to 1 for black/white
Set Variable [ $Result ; Value: MBS("GMImage.SetType";$Image; 1); ]
# set to use TIFF for compression
Set Variable [ $Result ; Value: MBS("GMImage.SetMagick";$Image; "TIFF"); ]
# set to use CCITT 4 Fax compression
Set Variable [ $Result ; Value: MBS("GMImage.SetCompressType";$Image; 4); ]
# and write to a file
Set Variable [ $Result ; Value: MBS("GMImage.WriteToFile"; $Image; "/tmp/test.tif"); ]
# cleanup
Set Variable [ $Error ; Value: MBS("GMImage.Release";$Image) ]
Set Variable [ $Image ; Value: MBS("GMImage.NewFromContainer"; GraphicsMagick::image); ]
# make black and white with threshold
Set Variable [ $Result ; Value: MBS("GMImage.Threshold";$Image; 127); ]
# mark as monochrome image
Set Variable [ $Result ; Value: MBS("GMImage.SetMonochrome";$Image; 1); ]
# set type to 1 for black/white
Set Variable [ $Result ; Value: MBS("GMImage.SetType";$Image; 1); ]
# set to use TIFF for compression
Set Variable [ $Result ; Value: MBS("GMImage.SetMagick";$Image; "TIFF"); ]
# set to use CCITT 4 Fax compression
Set Variable [ $Result ; Value: MBS("GMImage.SetCompressType";$Image; 4); ]
# and write to a file
Set Variable [ $Result ; Value: MBS("GMImage.WriteToFile"; $Image; "/tmp/test.tif"); ]
# cleanup
Set Variable [ $Error ; Value: MBS("GMImage.Release";$Image) ]
Loads from file and writes to other file:
Set Variable [$img; Value:MBS("GMImage.NewImagesFromFile"; "/Users/cs/Desktop/test.jpg")]
If [MBS("IsError") = 0]
Set Variable [$r; Value:MBS( "GMImage.WriteToFile"; $img; "/Users/cs/Desktop/test.tif" )]
Set Variable [$r; Value:MBS( "GMImage.Release"; $img)]
End If
If [MBS("IsError") = 0]
Set Variable [$r; Value:MBS( "GMImage.WriteToFile"; $img; "/Users/cs/Desktop/test.tif" )]
Set Variable [$r; Value:MBS( "GMImage.Release"; $img)]
End If
Draw something and write to file on desktop:
# New Image
Set Variable [$img; Value:MBS("GMImage.New"; "300x200"; "RGB 1 1 1")]
# Set colors and line width
Set Variable [$r; Value:MBS("GMImage.SetStrokeColor"; $img; "RGB 1 0 0")]
Set Variable [$r; Value:MBS("GMImage.SetFillColor"; $img; "RGB 0 0 1")]
Set Variable [$r; Value:MBS("GMImage.SetLineWidth"; $img; 5)]
# draw a rectangle
Set Variable [$r; Value:MBS("GMImage.DrawRectangle"; $img; 50; 50; 250; 150)]
# save to test.png on desktop:
Set Variable [$DesktopPath; Value:MBS( "Folders.UserDesktop" )]
Set Variable [$path; Value:MBS( "Path.AddPathComponent"; $DesktopPath; "test.png")]
Set Variable [$r; Value:MBS("GMImage.WriteToFile"; $img; $path)]
# cleanup
Set Variable [$r; Value:MBS("GMImage.Release"; $img)]
Set Variable [$img; Value:MBS("GMImage.New"; "300x200"; "RGB 1 1 1")]
# Set colors and line width
Set Variable [$r; Value:MBS("GMImage.SetStrokeColor"; $img; "RGB 1 0 0")]
Set Variable [$r; Value:MBS("GMImage.SetFillColor"; $img; "RGB 0 0 1")]
Set Variable [$r; Value:MBS("GMImage.SetLineWidth"; $img; 5)]
# draw a rectangle
Set Variable [$r; Value:MBS("GMImage.DrawRectangle"; $img; 50; 50; 250; 150)]
# save to test.png on desktop:
Set Variable [$DesktopPath; Value:MBS( "Folders.UserDesktop" )]
Set Variable [$path; Value:MBS( "Path.AddPathComponent"; $DesktopPath; "test.png")]
Set Variable [$r; Value:MBS("GMImage.WriteToFile"; $img; $path)]
# cleanup
Set Variable [$r; Value:MBS("GMImage.Release"; $img)]
See also
- GMImage.SetProfile
- GMImage.SetType
- GMImage.Threshold
- GMImage.WriteToGIFContainer
- GMImage.WriteToJPEGContainer
- GMImage.WriteToPDFContainer
- GMImage.WriteToPNGContainer
- GMImage.WriteToTiffContainer
- IsError
- Path.AddPathComponent
Example Databases
- Barcode/Swiss QR-Code for invoices/Swiss QR-Code for invoices ISO 20022
- GraphicsMagick/Export Images
Blog Entries
- MBS FileMaker Advent calendar - Door 15 - vCard QR
- GraphicsMagick in FileMaker, part 3
- MBS Filemaker Plugin, version 4.4pr7
FileMaker Magazin
This function checks for a license.
Created 18th August 2014, last changed 25th February 2026