Topics
All
MacOS
(Only)
Windows
(Only)
Linux
(Only, Not)
iOS
(Only, Not)
Components
Crossplatform Mac & Win
Server
Client
Old
Deprecated
Guides
Examples
Videos
New in version:
12.1
12.2
12.3
12.4
12.5
13.0
13.1
13.2
13.3
13.4
Statistic
FMM
Blog
Resize image by using simple ratio algorithm.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
GraphicsMagick | 2.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
Parameter | Description | Example |
---|---|---|
ImageRef | The image reference number. | 1 |
Geometry | The new size. Geometry is specified as a width and height "100x200". | "300x200" |
Returns "OK" on success.
Qualifier | Description |
% | Interpret width and height as a percentage of the current size. |
! | Resize to width and height exactly, loosing original aspect ratio. |
< | Resize only if the image is smaller than the geometry specification. |
> | Resize only if the image is greater than the geometry specification. |
Scales the image to 50% with calculating ourself
Let ( [
$Image = MBS("GMImage.NewFromContainer"; GraphicsMagick::image);
$Width = MBS("GMImage.GetWidth";$Image);
$Height = MBS("GMImage.GetHeight";$Image);
$Width = $Width/2;
$Height = $Height/2;
$ScaleResult = MBS("GMImage.Scale";$Image; $Width & "x" & $Height);
$Result = MBS("GMImage.WriteToPNGContainer"; $Image);
$Error = MBS("GMImage.Release";$Image)
];
$Result)
Scales the image to 50% easily
Let ( [
$Image = MBS("GMImage.NewFromContainer"; GraphicsMagick::image);
$ScaleResult = MBS("GMImage.Scale";$Image; "50%");
$Result = MBS("GMImage.WriteToPNGContainer"; $Image);
$Error = MBS("GMImage.Release";$Image)
];
$Result)
Scales the image down to 640 pixel width, if it is bigger
Let ( [
$Image = MBS("GMImage.NewFromContainer"; GraphicsMagick::image);
$ScaleResult = MBS("GMImage.Scale";$Image; "640>");
$Result = MBS("GMImage.WriteToPNGContainer"; $Image);
$Error = MBS("GMImage.Release";$Image)
];
$Result)
Scale as script:
Set Variable [$Image; Value:MBS("GMImage.NewFromContainer"; Image Scaling::InputImage)]
Set Variable [$r; Value:MBS("GMImage.Scale"; $Image; "800x600")]
Set Field [Image Scaling::Result; MBS("GMImage.WriteToPNGContainer"; $Image)]
Set Variable [$r; Value: MBS("GMImage.Release"; $Image)]
Download picture and scale it down:
Set Variable [ $curl ; Value: MBS("CURL.New") ]
Set Variable [ $r ; Value: MBS("CURL.SetOptionURL"; $curl; MIX::URL) ]
Set Variable [ $r ; Value: MBS("CURL.SetOptionFollowLocation"; $curl; 1) ]
Set Variable [ $r ; Value: MBS("CURL.SetOptionMaxRedirs"; $curl; 3) ]
Set Variable [ $result ; Value: MBS("CURL.Perform"; $curl) ]
Set Variable [ $debug ; Value: MBS( "CURL.GetDebugMessages"; $curl) ]
If [ $result = "OK" ]
Set Variable [ $Image ; Value: MBS( "CURL.GetResultAsContainer"; $curl) ]
Set Variable [ $ImageRef ; Value: MBS("GMImage.NewFromContainer"; $image) ]
If [ MBS("IsError") = 0 ]
Set Variable [ $r ; Value: MBS("GMImage.Scale";$ImageRef; "256x256>") ]
Set Variable [ $ScaledImage ; Value: MBS("GMImage.WriteToJPEGContainer"; $ImageRef) ]
If [ MBS("IsError") = 0 ]
Set Field [ MIX::Image ; $ScaledImage ]
End If
Set Variable [ $r ; Value: MBS("GMImage.Release";$ImageRef) ]
End If
End If
Set Variable [ $r ; Value: MBS("CURL.Release"; $curl) ]
Scale with error checking:
Let ( [
Image = MBS("GMImage.NewFromContainer"; MyContainer);
// did loading work?
Error = MBS("IsError");
// don't scale if it failed
ScaleResult = If(Error; ""; MBS("GMImage.Scale"; Image; "500>"));
NewName = "Preview.png" ;
// pass through old container, if we can't load it.
NewImage = If(Error; MyContainer; MBS("GMImage.WriteToPNGContainer"; Image; NewName));
ReleaseResult = MBS("GMImage.Release"; Image)
];
NewImage)
Read image and scale down for preview:
Set Variable [ $image ; Value: MBS( "GMImage.NewFromContainer"; $input) ]
If [ MBS("IsError") = 0 ]
# limit size
Set Variable [ $scale ; Value: MBS("GMImage.Scale";$Image; "1000>") ]
# remove metadata
Set Variable [ $r ; Value: MBS( "GMImage.SetProfile"; $image; "IPTC"; "" ) ]
Set Variable [ $r ; Value: MBS( "GMImage.SetProfile"; $image; "EXIF"; "" ) ]
Set Variable [ $r ; Value: MBS( "GMImage.SetProfile"; $image; "XMP"; "" ) ]
# save
Set Variable [ $NewImage ; Value: MBS("GMImage.WriteToJPEGContainer"; $Image) ]
If [ MBS("IsError") = 0 ]
Set Field [ Get Preview::Preview ; $NewImage ]
Set Field [ Get Preview::Made using ; "GraphicsMagick" ]
Set Variable [ $r ; Value: MBS("GMImage.Release";$Image) ]
Exit Script [ Text Result: ]
End If
Set Variable [ $r ; Value: MBS("GMImage.Release";$Image) ]
End If
This function checks for a license.
Created 18th August 2014, last changed 15th April 2023