Home »
Bitrix »
bitrix images серые пятня после resize
Фнкция очистки серых пятен после ресайза и завязка этой функции с resizeImageGet
$cacheImageFile);
$arSize = getimagesize($cacheImageFileTmp);
$arImg['width'] = $arSize[0];
$arImg['height'] = $arSize[1];
clearNoiseByImgType3($arImg);
}
return true;
}
// Функции очищения изображения от шумов и артефактов
function clearNoise3(&$srcImg, $imgWidth, $imgHeight)
{
$colorWhite = imagecolorallocate($srcImg, 255, 255, 255);
for($y=0; $y<($imgHeight); ++$y)
{
for($x=0; $x<($imgWidth); ++$x)
{
$colorat=imagecolorat($srcImg, $x, $y);
$r = ($colorat >> 16) & 0xFF;
$g = ($colorat >> 8) & 0xFF;
$b = $colorat & 0xFF;
if(($r == 253 && $g == 253 && $b == 253) || ($r == 254 && $g == 254 && $b ==254)) {
imagesetpixel($srcImg, $x, $y, $colorWhite);
}
}
}
}
function clearNoiseByImgType3($imgArr){
$imagePath=$_SERVER["DOCUMENT_ROOT"].$imgArr['src'];
$size = getimagesize($imagePath);
switch($size["mime"]){
case "image/jpeg": {
$im = imagecreatefromjpeg($imagePath);
clearNoise3($im, $imgArr['width'], $imgArr['height']);
imagejpeg($im,$imagePath,100);
echo ''; print_r('changed'); echo '';
}
break;
case "image/gif": {
$im = imagecreatefromgif($imagePath);
clearNoise3($im, $imgArr['width'], $imgArr['height']);
imagegif($im,$imagePath);
}
break;
case "image/png": {
$im = imagecreatefrompng($imagePath);
clearNoise3($im, $imgArr['width'], $imgArr['height']);
imagepng($im,$imagePath);
}
break;
default: {
}
break;
}
}
CModule::IncludeModule('iblock');
$arFilter = Array(
"IBLOCK_ID" => 11,
"PROPERTY_CML2_ARTICLE" => $_GET['art'],
);
$resElement = CIBlockElement::GetList(Array("SORT"=>"ASC"), $arFilter);
if($arElement = $resElement->GetNext()) {
$imagePath = $_SERVER['DOCUMENT_ROOT'].CFile::GetPath($arElement['DETAIL_PICTURE']);
for($i=0;$i<100;$i++){
$previewImage2 = CFile::ResizeImageGet(
$arElement['DETAIL_PICTURE'],
array(
'width'=>163,
'height'=>138
),
BX_RESIZE_IMAGE_PROPORTIONAL_ALT,
true
);
$src2 = $previewImage2['src'];
echo '
';
}
} else {
CHTTP::SetStatus("404 Not Found");
define('ERROR_404', 'Y');
}
?>
Свежие комментарии