parks
Постоялец
- Регистрация
- 18 Сен 2008
- Сообщения
- 439
- Реакции
- 100
- Автор темы
- #1
Происходит следующее
Так скрипт работает.
А если взять тоже файл с базы получается страница с каракулями
Хотелось бы выяснить почему происходит такого рода ситуация, как её решить ,ну и заменить сохранённое изображение, на ново созданое было бы неплохо) .
З.Ы: С GD сталкиваюсь впервые.
Так скрипт работает.
PHP:
if (! extension_loaded('gd')) { // Проверяем установку библиотеки GD
echo 'GD не установлено. Обратитесь к администратору вашего сайта!';
exit;
}
$sOrigImg = "http://uploader_2/storage/tcy8tv3k50efcw4nc5yknv337j9fgf.jpg";
$sWmImg = "watermark.png";
$aImgInfo = getimagesize($sOrigImg);
$aWmImgInfo = getimagesize($sWmImg);
if (is_array($aImgInfo) && count($aImgInfo)) {
header ("Content-type: image/png");
$iSrcWidth = $aImgInfo[0];
$iSrcHeight = $aImgInfo[1];
$iFrameSize = 15;
$rImage = imagecreatetruecolor($iSrcWidth+$iFrameSize*2, $iSrcHeight+$iFrameSize*2); // Создаем новое изображение
$rSrcImage = imagecreatefromjpeg($sOrigImg); // Создаем исходное изображение
$aGrid[1] = imagecolorallocate($rImage, 130, 130, 130); // Определяем цвета для прямоугольной области
$aGrid[2] = imagecolorallocate($rImage, 150, 150, 150);
$aGrid[3] = imagecolorallocate($rImage, 170, 170, 170);
$aGrid[4] = imagecolorallocate($rImage, 190, 190, 190);
$aGrid[5] = imagecolorallocate($rImage, 210, 210, 210);
for ($i=1; $i<=5; $i++) { // Наша маленькая рамка будет содержать 5 прямоугольников для эмуляции градиента
imagefilledrectangle($rImage, $i*3, $i*3, ($iSrcWidth+$iFrameSize*2)-$i*3, ($iSrcHeight+$iFrameSize*2)-$i*3, $aGrid[$i]); // Рисуем заполненный прямоугольник
}
imagecopy($rImage, $rSrcImage, $iFrameSize, $iFrameSize, 0, 0, $iSrcWidth, $iSrcHeight); // Копируем полученное изображение на изображение-источник
if (is_array($aWmImgInfo) && count($aWmImgInfo)) {
$rWmImage = imagecreatefrompng($sWmImg); // Создаем изображение водяного знака
imagecopy($rImage, $rWmImage, $iSrcWidth-$aWmImgInfo[0], $iFrameSize, 0, 0, $aWmImgInfo[0], $aWmImgInfo[1]); // Копируем изображение водяного знака на изображение источник
}
imagepng($rImage); // Выводим изображение
} else {
echo 'Image error!';
exit;
}
PHP:
<?
include('config.php');
$item_id = 174;
$get_file_1 = mysql_query("SELECT filename, originalext FROM `files` WHERE id = '$item_id' LIMIT 1")OR die(mysql_error());
$myrow_1 = mysql_fetch_array($get_file_1)OR die(mysql_error());
$wtmf = $myrow_1['originalext'];
$wtmn = "http://".$site_url."/storage/".$myrow_1['filename'] ;
echo "<h1>lolo $wtmn</h1>";
if($wtmf == "png" or $wtmf == "jpg" or $wtmf == "jpeg" or $wtmf == "gif" or $wtmf == "bmp"){
if (! extension_loaded('gd')) { // Проверяем установку библиотеки GD
echo 'GD не установлено. Обратитесь к администратору вашего сайта!';
exit;
}
$sOrigImg = $wtmn;
$sWmImg = "watermark.png";
$aImgInfo = getimagesize($sOrigImg);
$aWmImgInfo = getimagesize($sWmImg);
if (is_array($aImgInfo) && count($aImgInfo)) {
header ("Content-type: image/png");
$iSrcWidth = $aImgInfo[0];
$iSrcHeight = $aImgInfo[1];
$iFrameSize = 15;
$rImage = imagecreatetruecolor($iSrcWidth+$iFrameSize*2, $iSrcHeight+$iFrameSize*2); // Создаем новое изображение
$rSrcImage = imagecreatefromjpeg($sOrigImg); // Создаем исходное изображение
imagecopy($rImage, $rSrcImage, $iFrameSize, $iFrameSize, 0, 0, $iSrcWidth, $iSrcHeight); // Копируем полученное изображение на изображение-источник
if (is_array($aWmImgInfo) && count($aWmImgInfo)) {
$rWmImage = imagecreatefrompng($sWmImg); // Создаем изображение водяного знака
imagecopy($rImage, $rWmImage, $iSrcWidth-$aWmImgInfo[0], $iFrameSize, 0, 0, $aWmImgInfo[0], $aWmImgInfo[1]); // Копируем изображение водяного знака на изображение источник
}
imagepng($rImage); // Выводим изображение
} else {
echo 'Image error!';
exit;
}}
?>
З.Ы: С GD сталкиваюсь впервые.