Current Location: Home> Latest Articles> How to save an image to PNG format after using imagecreatefromxpm function

How to save an image to PNG format after using imagecreatefromxpm function

gitbox 2025-05-29

In PHP, the imagecreatefromxpm() function is used to create an image resource from an image file in XPM format. XPM format is a text-based image format, usually used for small icons or interface elements in UNIX/Linux environments. Although PHP's GD library supports loading XPM images through imagecreatefromxpm() , developers often need to save the loaded images into other formats, such as the commonly used PNG format.

The following details the steps to save the image as a PNG format file using imagecreatefromxpm() .


1. Ensure that the PHP environment supports GD library and XPM formats

First, make sure your PHP environment has enabled the GD library and supports the imagecreatefromxpm() function. You can check by running the following code:

<code> <?php if (function_exists('imagecreatefromxpm')) { echo "Supports imagecreatefromxpm function"; } else { echo "The imagecreatefromxpm function is not supported, please check the GD library configuration"; } ?> </code>

2. Use imagecreatefromxpm() to load XPM file

Assuming your XPM file path is images/sample.xpm , use the following code to load the XPM image:

<code> <?php $xpmFile = 'images/sample.xpm'; $image = imagecreatefromxpm($xpmFile);

if (!$image) {
die("Failed to load XPM file");
}
?>
</code>

This code will return a GD image resource and false if loading fails.


3. Save the loaded image to PNG format

Use the imagepng() function of the GD library to save image resources as PNG format files. The sample code is as follows:

<code> <?php $outputFile = 'images/output.png'; if (imagepng($image, $outputFile)) { echo "The image was successfully saved in PNG format, path: gitbox.net/images/output.png"; } else { echo "Save PNG file failed"; } imagedestroy($image); // Release image resources?> </code>

Notice:

  • The second parameter is the path to save the file, and you must ensure that the directory has write permissions.

  • After using the image resources, call imagedestroy() to free up memory.


4. Complete sample code

Taking the above steps into consideration, the following is a complete example:

<code> <?php $xpmFile = 'images/sample.xpm'; $outputFile = 'images/output.png';

// Load XPM image
$image = imagecreatefromxpm($xpmFile);
if (!$image) {
die("Failed to load XPM file");
}

// Save as PNG format
if (imagepng($image, $outputFile)) {
echo "The image has been saved successfully as a PNG file, path: gitbox.net/images/output.png";
} else {
echo "Save PNG file failed";
}

// Free up resources
imagedestroy($image);
?>
</code>


5. Things to note

  • Make sure the images/ directory exists and has write permissions.

  • The XPM file is formatted correctly and complete, otherwise imagecreatefromxpm() may not be loaded.

  • If you need to output PNG to the browser instead of saving the file, you can omit the second parameter of imagepng() and set the appropriate Content-Type header.