[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Imagick портит изображение.
Nikitian
Делаю скрипт наложения ватермарка. Столкнулся со странной ситуаций: на некоторые изображения ватермарк накладывается нормально, а на некоторые он разваливается. Код и пример скажут лучше меня.
PHP
<?php
//$wm_image - файл ватермарка. Их 3 под разные размеры, чтобы не ресайзить ещё
//$res_image - файл, на который накладывается ватермарк.
// Cохраняется в сам себя через временный файл (почему-то иногда если сохранять в себя сразу, то апач падал)
$wm = new Imagick($wm_image);
$wm->thumbnailImage($wm->getImageWidth(), $wm->getImageHeight());
$wm->setImageOpacity(round(mt_rand(25,40)/100,2));
//собственно делаем
$position=mt_rand(0,100);
if(
$position>75)
    {
    
$w=$width-$wm->getImageWidth()-10;
    
$h=$height-$wm->getImageHeight()-10;
    }
elseif(
$position>50)
    {
    
$w=10;
    
$h=10;
    }
elseif(
$position>25)
    {
    
$w=$width-$wm->getImageWidth()-10;
    
$h=10;
    }
else
    {
    
$w=10;
    
$h=$height-$wm->getImageHeight()-10;
    }
$image->compositeImage($wmimagick::COMPOSITE_DARKEN$w$h);
$wm->clear();
$wm->destroy(); 
//сохраняем 
try{
@
unlink('/_uploads/tmp/wt');
$r[$res[0]]=$image->writeImage('/_uploads/tmp/wt');
@
unlink($res_image);
@
copy('/_uploads/tmp/wt',$res_image);
    }
catch (
Exception $e)
    {
    
$r[$res[0]]=true;//Чтобы больше не трогать этот файл
    
}
//выводим
$image->clear();
$image->destroy();

Пример того, как портит изображение тут: http://nikitian.ru/ow3b7fd3733c587024bdd6967db059d50f.jpg (вертикальные полосы)

Может кто поможет и ткнёт носом где я косячу?
Сразу: исходный файл ватермарка не порченный: вот они: 1, 2, 3



Спустя 19 часов, 47 минут, 1 секунда (2.10.2009 - 13:10) Nikitian написал(а):
up

Спустя 14 минут, 13 секунд (2.10.2009 - 13:24) waldicom написал(а):
Указать на ошибку к сожалению не могу, но может попробовать совершенно другое изображение в качестве watermark'а?

Спустя 48 минут, 30 секунд (2.10.2009 - 14:13) Nikitian написал(а):
Какое именно другое? Сейчас посмотрел - проблема не в наложении, а в генерации полупрозрачности именно у этого изображения (самое маленькое из трёх). Видимо всё не так страшно и сейчас грешу на черезстрочность пнг.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.