Magento将黑色背景添加到png图像

时间:2017-06-19 11:42:15

标签: magento magento-1.9

我使用 Magento版本1.9.3.3 ,并且遇到了很少 png 图像的问题。它会自动添加黑色背景。请帮我保持透明度。

图片示例:enter image description here

3 个答案:

答案 0 :(得分:0)

这似乎经常发生在Magento 1.9.3.3或应用补丁SUPEE 9767之后。 请阅读此Watermark get black background when transparent

答案 1 :(得分:0)

有同样的问题,在补丁之前上传了旧的lib / Varien / Image / Adapter / Gd2.php并重新开始工作。

答案 2 :(得分:0)

我的Magento版本1.9.3.3也有同样的问题。下面的修复解决了我的问题

扩展此类文件Mage_Core_Model_File_Validator_Image

创建模块:

Magegeeks_Core_Model_File_Validator_Image的克里特文件,内容低于:

class Magegeeks_Core_Model_File_Validator_Image extends Mage_Core_Model_File_Validator_Image
{

    /**
     * Validation callback for checking is file is image
     *
     * @param  string $filePath Path to temporary uploaded file
     * @return null
     * @throws Mage_Core_Exception
     */
    public function validate($filePath)
    {
        list($imageWidth, $imageHeight, $fileType) = getimagesize($filePath);
        if ($fileType) {
            if ($this->isImageType($fileType)) {
                //replace tmp image with re-sampled copy to exclude images with malicious data
                $image = imagecreatefromstring(file_get_contents($filePath));
                if ($image !== false) {
                    $img = imagecreatetruecolor($imageWidth, $imageHeight);
                    imagealphablending($img, false);
                    imagecopyresampled($img, $image, 0, 0, 0, 0, $imageWidth, $imageHeight, $imageWidth, $imageHeight);
                    imagesavealpha($img, true);
                    switch ($fileType) {
                        case IMAGETYPE_GIF:
                            imagegif($img, $filePath);
                            break;
                        case IMAGETYPE_JPEG:
                            imagejpeg($img, $filePath, 100);
                            break;
                        case IMAGETYPE_PNG:
                            imagepng($img, $filePath);
                            break;
                        default:
                            return;
                    }
                    imagedestroy($img);
                    imagedestroy($image);
                    return null;
                } else {
                    throw Mage::exception('Mage_Core', Mage::helper('core')->__('Invalid image.'));
                }
            }
        }
        throw Mage::exception('Mage_Core', Mage::helper('core')->__('Invalid MIME type.'));
    }

在etc / config.xml文件中:

<config>
    <modules>
        <Magegeeks_Core>
            <version>0.0.1</version>
        </Magegeeks_Core>
    </modules>
<global>
        <models>
            <sdm_core>
                <class>Magegeeks_Core_Model</class>
            </sdm_core>
            <core>
               <rewrite>
                    <file_validator_image>SDM_Core_Model_File_Validator_Image</file_validator_image>
               </rewrite>
            </core>
        </models>
</global>
</config>

应用的/ etc /模块/ Magegeeks_Core.xml

<config>
    <modules>
        <Magegeeks_Core>
            <active>true</active>
            <codePool>local</codePool>
        </Magegeeks_Core>
    </modules>
</config>

希望这能解决你的问题。