Новичок
Покинул форум
Сообщений всего: 36
Дата рег-ции: Май 2011
Помог: 0 раз(а)
|
Здравствуйте.
Помогите разобраться с проблемой наложения ватермарки на изображение.
Имеетя скрипт ПХП обработки изображения. Сам по себе он работает и ватермарку накладывает. Но когда я делаю перенаправление на него через htaccess , то изображение не выводится. При чем скрипт довольно распространенный на просторах интернета и у многих он работает без проблем, хотя у многих и неработает. у меня и на локальном и на хосте он нехочет работать. Очевидно что есть какие-то хитрости в htaccess которые недают корректно работать скрипту.
Расположение директорий: localhost/watermark/index.php - основная страница
localhost/watermark/watermark/wa termark.php - скрипт
localhost/watermark/img/11.jpg - картинка
Вот собственно сам htaccess
CODE ( htmlphp):
скопировать код в буфер обмена
php_flag display_errors on php_value error_reporting "E_ALL & ~E_NOTICE" <FilesMatch "\.(gif|jpg|png|JPG|jpeg)$"> RewriteEngine On RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^(.*)$ /watermark/watermark.php [T=application/x-httpd-php,L,QSA] </FilesMatch>
А вот сам скрипт
CODE ( htmlphp):
скопировать код в буфер обмена
<?php waterMark("http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'], "watermark.png", "bottom=5,right=5"); function waterMark($original, $watermark, $placement = 'bottom=5,right=5', $destination = null) { if (!$info_o) return false; if (!$info_w) return false; list ($vertical, $horizontal) = split(',', $placement,2); switch (trim($vertical)) { case 'bottom': $y = $info_o[1] - $info_w[1] - (int)$sy; break; case 'middle': $y = ceil($info_o[1]/2) - ceil($info_w[1]/2) + (int)$sy; break; default: $y = (int)$sy; break; } switch (trim($horizontal)) { case 'right': $x = $info_o[0] - $info_w[0] - (int)$sx; break; case 'center': $x = ceil($info_o[0]/2) - ceil($info_w[0]/2) + (int)$sx; break; default: $x = (int)$sx; break; } header("Content-Type: ".$info_o['mime']); imageCopy($out, $original, 0, 0, 0, 0, $info_o[0], $info_o[1]); //Здесь задаем размер изображения в которые можно добавлять Watermark // $info_o[0] > 250 - ширина изображения должна быть больше 250 px // $info_o[1] > 250 - высота изображения должна быть больше 250 px if( ($info_o[0] > 250) && ($info_o[1] > 250) ) { imageCopy($out, $watermark, $x, $y, 0, 0, $info_w[0], $info_w[1]); } switch ($info_o[2]) { case 1: break; case 2: break; case 3: break; } return true; } ?>
(Отредактировано автором: 01 Февраля, 2012 - 10:53:45)
|