I have a PSD file of a t-shirt template with a design placed over the t-shirt. The design is in its own layer. How can I replace the image with another design that is not currently in the PSD file?

I use this code to find the layer containing the design image, but how can I replace the image inside the layer?

// Load the PSD file
$psd = new Imagick(realpath("130.psd"));

// Export layers
foreach ($psd as $no => $layer) {

    // Get the name of this layer
    $imageProperties = $layer->getimageproperties();

    // Find layer with tshirt design image
    if ( $imageProperties['label'] == "Design" ) {
        echo "<p>Found DESIGN label</p>";
        print_r($imageProperties);
    }

}

    Not at all sure, but I might try something like this and see if I got lucky:

    $psd = new Imagick(realpath("130.psd"));
    // load the replacement image:
    $replacement = new Imagick(realpath("some_image.png"));
    
    foreach ($psd as $no => $layer) {
        $imageProperties = $layer->getimageproperties();
        if ( $imageProperties['label'] == "Design" ) {
            $layer->setImage($replacement);    
    } }
      Write a Reply...