Op de een of andere manier laat magento transprarante png files zien met een zwarte achtergrond. Naar mijn idee doe ik niets anders dan voorheen maar krijg deze zwarte achtergrond niet weg.
Wat gaat er verkeerd en wat zie ik ineens over het hoofd?
Solved! Go to Solution.
We hebben inderdaad niet de laatste update. Er draait 1.9.3.3
Binnenkort zal er een nieuwe update gaan plaastvinden. Ik denk dat ik mij heel even moet berusten in het plaatsen van jpegs. mocht het na de update nog niet lukken dan zullen we even verder moeten gaan spitten. Of ik ga het over de schutting gooien bij de makers.
Ontzettend bedankt voor je tijd en moeite om met mij mee te willen kijken.
Hallo, AventumBV,
Ik denk dat je hier wel iets mee kan:
tnx!
Ik denk dat dit het eufel inderdaad zal fixen, maar hoe ga ik dat aanpakken?
Zo'n enorme backender ben ik niet...
De bestanden gevonden en aangepast en in de locale mappen gezet. (ook die G2) maar geen verschil te zien nog.
Heb je na de upload van de wijzigingen de cache vernieuwd?
Post de inhoud van je image.php eens
<?php /** * Magento * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/osl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@magento.com so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade Magento to newer * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magento.com for more information. * * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2017 X.commerce, Inc. and affiliates (http://www.magento.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Validator for check is uploaded file is image * * @category Mage * @package Mage_Core * @author Magento Core Team <core@magentocommerce.com> */ class Mage_Core_Model_File_Validator_Image { const NAME = "isImage"; protected $_allowedImageTypes = array( IMAGETYPE_JPEG, IMAGETYPE_GIF, IMAGETYPE_JPEG2000, IMAGETYPE_PNG, IMAGETYPE_ICO, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM ); /** * Setter for allowed image types * * @param array $imageFileExtensions * @return $this */ public function setAllowedImageTypes(array $imageFileExtensions = array()) { $map = array( 'tif' => array(IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM), 'tiff' => array(IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM), 'jpg' => array(IMAGETYPE_JPEG, IMAGETYPE_JPEG2000), 'jpe' => array(IMAGETYPE_JPEG, IMAGETYPE_JPEG2000), 'jpeg' => array(IMAGETYPE_JPEG, IMAGETYPE_JPEG2000), 'gif' => array(IMAGETYPE_GIF), 'png' => array(IMAGETYPE_PNG), 'ico' => array(IMAGETYPE_ICO), 'apng' => array(IMAGETYPE_PNG) ); $this->_allowedImageTypes = array(); foreach ($imageFileExtensions as $extension) { if (isset($map[$extension])) { foreach ($map[$extension] as $imageType) { $this->_allowedImageTypes[$imageType] = $imageType; } } } return $this; } /** * 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); switch ($fileType) { case IMAGETYPE_GIF: imagecopyresampled($img, $image, 0, 0, 0, 0, $imageWidth, $imageHeight, $imageWidth, $imageHeight); imagegif($img, $filePath); break; case IMAGETYPE_JPEG: imagecopyresampled($img, $image, 0, 0, 0, 0, $imageWidth, $imageHeight, $imageWidth, $imageHeight); imagejpeg($img, $filePath, 100); break; case IMAGETYPE_PNG: imagecolortransparent($img, imagecolorallocatealpha($img, 0, 0, 0, 127)); imagealphablending($img, false); imagesavealpha($img, true); imagecopyresampled($img, $image, 0, 0, 0, 0, $imageWidth, $imageHeight, $imageWidth, $imageHeight); 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.')); } /** * Returns is image by image type * @param int $nImageType * @return bool */ protected function isImageType($nImageType) { return in_array($nImageType, $this->_allowedImageTypes); } }
Volgens de laatste update ( patch SUPEE-9767 V2) zou je image.php iets anders moeten zijn. Zie onderstaande inhoud van de image.php
<?php /** * Magento * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/osl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@magento.com so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade Magento to newer * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magento.com for more information. * * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2017 X.commerce, Inc. and affiliates (http://www.magento.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Validator for check is uploaded file is image * * @category Mage * @package Mage_Core * @author Magento Core Team <core@magentocommerce.com> */ class Mage_Core_Model_File_Validator_Image { const NAME = "isImage"; protected $_allowedImageTypes = array( IMAGETYPE_JPEG, IMAGETYPE_GIF, IMAGETYPE_JPEG2000, IMAGETYPE_PNG, IMAGETYPE_ICO, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM ); /** * Setter for allowed image types * * @param array $imageFileExtensions * @return $this */ public function setAllowedImageTypes(array $imageFileExtensions = array()) { $map = array( 'tif' => array(IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM), 'tiff' => array(IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM), 'jpg' => array(IMAGETYPE_JPEG, IMAGETYPE_JPEG2000), 'jpe' => array(IMAGETYPE_JPEG, IMAGETYPE_JPEG2000), 'jpeg' => array(IMAGETYPE_JPEG, IMAGETYPE_JPEG2000), 'gif' => array(IMAGETYPE_GIF), 'png' => array(IMAGETYPE_PNG), 'ico' => array(IMAGETYPE_ICO), 'apng' => array(IMAGETYPE_PNG) ); $this->_allowedImageTypes = array(); foreach ($imageFileExtensions as $extension) { if (isset($map[$extension])) { foreach ($map[$extension] as $imageType) { $this->_allowedImageTypes[$imageType] = $imageType; } } } return $this; } /** * 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: $transparencyIndex = imagecolortransparent($image); if ($transparencyIndex >= 0) { imagecolortransparent($img, $transparencyIndex); for ($y = 0; $y < $imageHeight; ++$y) { for ($x = 0; $x < $imageWidth; ++$x) { if (((imagecolorat($img, $x, $y) >> 24) & 0x7F)) { imagesetpixel($img, $x, $y, $transparencyIndex); } } } } if (!imageistruecolor($image)) { imagetruecolortopalette($img, false, imagecolorstotal($image)); } imagegif($img, $filePath); break; case IMAGETYPE_JPEG: imagejpeg($img, $filePath, 100); break; case IMAGETYPE_PNG: imagepng($img, $filePath); break; default: break; } 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.')); } /** * Returns is image by image type * @param int $nImageType * @return bool */ protected function isImageType($nImageType) { return in_array($nImageType, $this->_allowedImageTypes); } }
We hebben inderdaad niet de laatste update. Er draait 1.9.3.3
Binnenkort zal er een nieuwe update gaan plaastvinden. Ik denk dat ik mij heel even moet berusten in het plaatsen van jpegs. mocht het na de update nog niet lukken dan zullen we even verder moeten gaan spitten. Of ik ga het over de schutting gooien bij de makers.
Ontzettend bedankt voor je tijd en moeite om met mij mee te willen kijken.