Перестал работать cvi_glossy.add()

L

ler

Гость
#1
В общем после танцев с бубнами с сервером (обновлял php, ставил swftools и ffmpeg и прочие ненужные вещи) перестали отрисовываться canvas изображения последних раздач торрента
сейчас они выглядят так
<canvas id="" title="" class="" height="115" width="86" style="max-height: 120px; height: 115px; width: 86px;"></canvas>
Также пропала прозрачность при наложении вотеремарка при загрузке изображений, но это решил с помощью этого

Please Login or Register to view hidden text.

.
Куда копать?

вот код из page_header.tpl
<a href="/viewtopic.php?t={lastAdded.TOPIC_ID}"><center><img style="max-height:120px" src="{lastAdded.POSTER_IMG}" onload="cvi_glossy.add(this,{radius:30,nogradient:true,angle:-33,shadow:30});"></center></a>
 
G

Gemini_13

Гость
#2
Вася, ну как бы включаем логику...
HTML:
<a href="/viewtopic.php?t={lastAdded.TOPIC_ID}"><center><img style="max-height:120px" src="{lastAdded.POSTER_IMG}" onload="cvi_glossy.add(this,{radius:30,nogradient:true,angle:-33,shadow:30});"></center></a>
тут тег canvas фигурирует? нет.. откуда тогда он у тебя берется? вообще это тег хтмл5 и не во всех браузерах будет работать, но не в этом суть.. где он у тебя прописан, что он появился? вот там и искать надо
 
L

ler

Гость
#3
Все что выше я наврал. Канвас тут не причем. Дело в другом.
После добавления торрента в базу в поле topic_image вместо адреса картинки идет запись
./templates/default/images/forum_icons/no_poster.png
а должно быть
pictures/md5хэшизображения.jpg
Проблема в файле includes/functions_torrent.php в этой функции
PHP:
function get_thumb($post_id, $topic_id)
{
 
    $cMaxWidth = 90; //размер тумбы))
    $tText = DB()->fetch_row("SELECT post_text FROM " . BB_POSTS_TEXT . " WHERE post_id = $post_id");
  preg_match_all('/\[img=right\](.*?)\[\/img\]/i', $tText['post_text'], $tPaImg, PREG_SET_ORDER);
    preg_match_all('/\[img=left\](.*?)\[\/img\]/i', $tText['post_text'], $tPaImg2, PREG_SET_ORDER);
    preg_match_all('/\[img\](.*?)\[\/img\]/i', $tText['post_text'], $tPaImg3, PREG_SET_ORDER);
    preg_match_all('/\[poster\](.*?)\[\/poster\]/i', $tText['post_text'], $tPaImg4, PREG_SET_ORDER);
 
    $url = '';
    if (@$tPaImg[0][1])
    {
        $url = $tPaImg[0][1];
    }
    elseif (@$tPaImg2[0][1])
    {
        $url = $tPaImg2[0][1];
    }
    elseif (@$tPaImg3[0][1])
    {
        $url = $tPaImg3[0][1];
    }
    elseif (@$tPaImg4[0][1])
    {
        $url = $tPaImg4[0][1];
    }
 
    if(!empty($url))
    {
        $imgs = @file_get_contents($url, 0, stream_context_create( array('http' => array('timeout' => 60)) ));
        if ($imgs != null)
        {
            mt_srand(time()+microtime()*rand(1,999));
            $filename = 'pictures/'.md5('topic_'.$topic_id).'_original.png';
            file_put_contents($filename,$imgs);
            $iInfo = getimagesize($filename);
            list($poster_width, $poster_height) = getimagesize($filename);
            switch ($iInfo['mime'])
            {
                case 'image/png':
                    $cImage = imagecreatefrompng($filename);
                    break;
                case 'image/gif':
                    $cImage = imagecreatefromgif($filename);
                    break;
                case 'image/jpeg':
                    $cImage = imagecreatefromjpeg($filename);
                    break;
                default:
                    $cImage = false;
            }
            if($cImage)
            {
                $thumb_width = $cMaxWidth;
                $thumb_height = ($poster_height*$cMaxWidth)/$poster_width;
                $tImage = imagecreatetruecolor($thumb_width, $thumb_height);
                imagecopyresampled($tImage, $cImage, 0, 0, 0, 0, $thumb_width, $thumb_height, $poster_width, $poster_height);
                imagealphablending($tImage, false);
                imagesavealpha($tImage, true);
                imagejpeg($tImage, 'pictures/'.md5('topic_'.$topic_id).'.jpg', 100);
                imagedestroy($tImage);
                imagedestroy($cImage);
                DB()->query("UPDATE " . BB_TOPICS . " SET topic_image = 'pictures/" . (md5('topic_'.$topic_id)) . ".jpg' WHERE topic_id=$topic_id");
            }
        }
    }
}
 
L

ler

Гость
#4
Поменял это
PHP:
 if($cImage)
            {
                $thumb_width = $cMaxWidth;
                $thumb_height = ($poster_height*$cMaxWidth)/$poster_width;
                $tImage = imagecreatetruecolor($thumb_width, $thumb_height);
                imagecopyresampled($tImage, $cImage, 0, 0, 0, 0, $thumb_width, $thumb_height, $poster_width, $poster_height);
                imagealphablending($tImage, false);
                imagesavealpha($tImage, true);
                imagejpeg($tImage, 'pictures/'.md5('topic_'.$topic_id).'.jpg', 100);
                imagedestroy($tImage);
                imagedestroy($cImage);
                DB()->query("UPDATE " . BB_TOPICS . " SET topic_image = 'pictures/" . (md5('topic_'.$topic_id)) . ".jpg' WHERE topic_id=$topic_id");
            }
На это
PHP:
  if($cImage)
            {
                $thumb_width = $cMaxWidth;
                $thumb_height = ($poster_height*$cMaxWidth)/$poster_width;
                $tImage = imagecreatetruecolor($thumb_width, $thumb_height);
 
$black = imagecolorallocatealpha($tImage, 0, 0, 0,127);
imagecolortransparent($tImage, $black); // Make the background transparent
                imagecopyresampled($tImage, $cImage, 0, 0, 0, 0, $thumb_width, $thumb_height, $poster_width, $poster_height);
                imagealphablending($tImage, false);
                imagesavealpha($tImage, true);
$infomime=str_replace('image/','',$iInfo['mime']);
$imgfunc="image".$infomime;
$imgfunc($tImage, 'pictures/'.md5('topic_'.$topic_id).$infomime);
                imagedestroy($tImage);
                imagedestroy($cImage);
                DB()->query("UPDATE " . BB_TOPICS . " SET topic_image = 'pictures/" . (md5('topic_'.$topic_id)) . $infomime."' WHERE topic_id=$topic_id");
            }
 

dimka3210

Пользователь
#6
Вася, у тебя наверное gd от php отвалился.Посмотри в phpinfo есть о нём (gd) информация.
 
L

ler

Гость
#7
gd

GD Support enabled
GD Version bundled (2.0.34 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.3.11
GIF Read Support enabled
GIF Create Support enabled
JPEG Support enabled
libJPEG Version 6b
PNG Support enabled
libPNG Version 1.2.49
WBMP Support enabled
XPM Support enabled
XBM Support enabled


Все функции в норме, только с прозрачностью была беда
Вот это смущает
$filename = 'pictures/'.md5('topic_'.$topic_id).'_original.png';
 
L

ler

Гость
#8
И почему для всех расширений картинок только это используется imagejpeg()
 
Сверху