Доброго времени суток вам.у меня есть небольшая проблемка.вобщем не работает код который я сам переделывал.взял я его из галереи двига и немного переделал.там в коде изменялся размер картинки и она сохранялась в папку.а мне нужно было только изменить размер и вывести на страницу.я решил сделать это по принципу captcha. сделал файл image.php в котором разместил код. а на странице написал такой тег <img src="image.php?file=' . $res['name'] . '" alt="" />.
в переменной содержится имя файла.
А вот код файла image.php
$infile = '../gallery/foto/' . $_GET['file'];
$sizs = GetImageSize($infile);
$width = $sizs[0];
$height = $sizs[1];
$razm_x = 70;
$razm_y = 100;
if ($width <= $razm_x && $height <= $razm_y) {
$tn_width = $width;
$tn_height = $height;
} else {
$tn_width = $width > $razm_x ? $razm_x : $width;
$tn_height = $height > $razm_y ? $razm_y : $height;
}
$format = format($infile);
switch ($format) {
case 'gif':
$im = ImageCreateFromGIF($infile);
break;
case 'jpg':
$im = ImageCreateFromJPEG($infile);
break;
case 'jpeg':
$im = ImageCreateFromJPEG($infile);
break;
case 'png':
$im = ImageCreateFromPNG($infile);
break;
}
$im1 = imagecreatetruecolor($tn_width, $tn_height);
imagecopyresized($im1, $im, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
switch ($format) {
case 'gif':
header("Content-type: image/gif");
ImageGif($im1);
break;
case 'jpg':
header("Content-type: image/jpeg");
imageJpeg($im1);
break;
case 'jpeg':
header("Content-type: image/jpeg");
imageJpeg($im1);
break;
case 'png':
header("Content-type: image/png");
imagePng($im1);
break;
}
imagedestroy($im);
imagedestroy($im1);
вобщем подскажите что я сделал не правильно.сам я не силен в работе с графикой в php.
здесь без кода страницы вряд ли тебе помогут, там могут быть и простые ошибки в коде
В коде страницы практически ничего нет.только запрос который создает массив $res и все.
BupTyo3 (02.08.2010/12:46)
В коде страницы практически ничего нет.только запрос который создает массив $res и все.
Путь к файлу правильно указал?
этот говнокод вообще зачем использовать?
$format = format($infile);
Вот так вот у меня
$file = isset ($_GET['file']) ? htmlspecialchars(urldecode($_GET['file'])) : NULL;
if ($file && file_exists('screen/' . $file)) {
$img = 'screen/' . $file;
$info = getimagesize('screen/' . $file);
$type = $info['mime'];
$razm = 150;
$width = $info[0];
$height = $info[1];
$x_ratio = $razm / $width;
$y_ratio = $razm / $height;
if (($width <= $razm) && ($height <= $razm)) {
$tn_width = $width;
$tn_height = $height;
}
else
if (($x_ratio * $height) < $razm) {
$tn_height = ceil($x_ratio * $height);
$tn_width = $razm;
}
else {
$tn_width = ceil($y_ratio * $width);
$tn_height = $razm;
}
switch($type)
{
//здесь добавляем нужные мими типы case'image/gif' и т.д.
case'image/png':
$imc=ImageCreateFromPNG($img);
break;
}
if($w < 100 && $h < 100)
{
$w_or = $w;
$h_or = $h;
}
else
{
$k = ($w > $h) ? $w/100 : $h/100;
$w_or = round($w/$k);
$h_or = round($h/$k);
}
$copy = true;
$img = imagecreatetruecolor($tn_width, $tn_height);
imagecopyresized($img,$imc, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
$site_home = 'site.net'; //сайт или слово для копирайта
$height_text = 11; //Высота шрифта
$naklon = 55; //Наклон шрифта
if($copy)
imagettftext($img, $height_text, $naklon, ceil($width*0.05), ceil($height*0.9), ImageColorAllocate($img, 0, 0, 0), 'STENCIL.TTF', $site_home);
//Используется шрифт STENCIL.TTF разумеется его надо добавить или свой добавить и изменить название выше
ob_start();
ImagePng($img);
ImageDestroy($img);
ImageDestroy($imc);
header('Content-type: image/png');
header('Content-Length: ' . ob_get_length());
ob_end_flush();
}
//Путь к файлу поменяй должно работать
Спасибо тестер.я просто вывод сделал как у тебя и все заработало. лови +еГ
Tester, ниасилил, это код для превьюшек картинок?
Друзья, дайте ПЛИЗ файлы чтоб на всех картинках(кроме тех что можно скачать- на них я хочу маленький копирайт внизу ставить
) был копирайт
ПЛИЗ!