|
|
|
|
|
для: SnooPI
(13.12.2007 в 06:41)
| | Спасибо, скрипт работает, вот только все-равно работает только с изображениями примерно до 300 кило :(
И подскажите, как полученое изображение сохранить в папке под именем "small_".$dest.$head ? | |
|
|
|
|
|
|
|
для: vitroot
(13.12.2007 в 05:48)
| | Держи скрипт....использовать так: img.php?img=/pyt/do/kartinki.jpg
<?php
error_reporting(0);
$img = isset($_GET['img']) ? $_GET['img'] : '' ;
$w = 70;
$str = "";
$size = 1;
$q =70;
$ff = explode(".", $img);
$km = count($ff);
$km = $km - 1;
$format = $ff[$km];
if($format == "jpg")
{
$head = 'jpg';
$createfunc = 'imagejpeg';
$funci = "imagecreatefromjpeg";
}
else
if($format == "gif")
{
$head = 'gif';
$createfunc = 'imagegif';
$funci = "imagecreatefromgif";
}
else
{
$head = 'jpeg';
$createfunc = 'imagejpeg';
$funci = "imagecreatefromjpeg";
}
list(, , $type,) = getimagesize($img);
$im1 = $funci($img);
$w_src = imagesx($im1);
$h_src = imagesy($im1);
if($w_src > $w)
{
$ratio = $w_src/$w;
$w_dest = round($w_src/$ratio);
$h_dest = round($h_src/$ratio);
$dest = imagecreatetruecolor($w_dest,$h_dest);
imagecopyresampled($dest, $im1, 0,0,0,0,$w_dest,$h_dest, imagesx($im1), imagesy($im1));
}
else
if($w_src <= $w)
{
$dest = imagecreatetruecolor($w_src,$h_src);
imagecopyresampled($dest, $im1, 0,0,0,0,$w_src,$h_src, $w_src, $h_src);
}
$x_text = $w_dest-imagefontwidth($size)*strlen($str)-3;
$y_text = $h_dest-imagefontheight($size)-3;
$white = imagecolorallocate($dest, 255, 255, 255);
$black = imagecolorallocate($dest, 0, 0, 0);
$gray = imagecolorallocate($dest, 127, 127, 127);
if(imagecolorat($dest,$x_text,$y_text) > $gray) $color = $black;
if(imagecolorat($dest,$x_text,$y_text) < $gray) $color = $white;
imagestring($dest, $size, $x_text - 1, $y_text - 1, $str,$white-$color);
imagestring($dest, $size, $x_text + 1, $y_text + 1, $str,$white-$color);
imagestring($dest, $size, $x_text + 1, $y_text - 1, $str,$white-$color);
imagestring($dest, $size, $x_text - 1, $y_text + 1, $str,$white-$color);
imagestring($dest, $size, $x_text - 1, $y_text, $str,$white-$color);
imagestring($dest, $size, $x_text + 1, $y_text, $str,$white-$color);
imagestring($dest, $size, $x_text, $y_text - 1, $str,$white-$color);
imagestring($dest, $size, $x_text, $y_text + 1, $str,$white-$color);
imagestring($dest, $size, $x_text, $y_text, $str,$color);
header("Content-type: image/$head");
$createfunc($dest,'',$q);
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(13.12.2007 в 00:07)
| | приведу свой код. Народ, помогите, кому не сложно, ну очень надо! :)
$sql=mysql_query("INSERT INTO `screens` VALUES (Здесь помещаю инфу об изображении в БД - все нормально);
$ss=mysql_query("SELECT * FROM `screens` WHERE filename='".$_FILES['file']['name']."';");
$img=mysql_fetch_array($ss);
$file="upload/".$_FILES['file']['name'];
$w=$size[0]/10;
$h=$size[1]/10;
$empty = imagecreatetruecolor($w, $h);
imagefill($empty, 0, 0, 0xFFFFFF);
$old_zip=$size[0]/$size[1];
$new_zip=$w/$h;
if ($old_zip>$new_zip)
{
$old_h=$size[1];
$size[1]=floor($size[0]/$new_zip);
$old_h=floor($old_h*$h/$size[1]);
}
else
{
$old_w=$size[0];
$size[0]=floor($size[1]*$new_zip);
$old_w=floor($old_w*$w/$size[0]);
}
switch ($size['mime'])
{
case "image/jpeg": $screen=imagecreatefromjpeg($file); $ext="jpg";break;
case "image/gif": $screen=imagecreatefromgif($file); $ext="gif";break;
case "image/png": $screen=imagecreatefrompng($file); $ext="png";break;
}
imagecopyresampled($empty, $screen, 0, 0, 0, 0, $w, $h, $size[0], $size[1]);
switch ($size['mime'])
{
case "image/jpeg": imagejpeg($file, "small_".$ss['id'].".$ext");break;
case "image/gif": imagegif($file, "small_".$ss['id'].".$ext");break;
case "image/png": imagepng($file, "small_".$ss['id'].".$ext");break;
}
imagedestroy($file); imagedestroy($screen);
echo "<img src=/upload/small_".$ss['id'].">";
}
|
| |
|
|
|
|
|
|
|
для: Trianon
(13.12.2007 в 00:07)
| | Вот какую ошибку пишет:
>Warning: imagejpeg(): supplied argument is not a valid Image resource in /var/www/add_screen.php on line 109
>Warning: imagedestroy(): supplied argument is not a valid Image resource in /var/www/add_screen.php on line 113 | |
|
|
|
|
|
|
|
для: cheops
(12.12.2007 в 14:46)
| | Дело на локальной машине под Ubunt'ой | |
|
|
|
|
|
|
|
для: vitroot
(12.12.2007 в 13:56)
| | 300 Кило Jpeg'а может оказаться огромным изображением, в распакованном (BMP) виде занимающем памяти больше, чем отведено на сервере php-процессу. | |
|
|
|
|
|
|
|
для: vitroot
(12.12.2007 в 13:56)
| | может это связано с php.ini | |
|
|
|
|
|
|
|
для: vitroot
(12.12.2007 в 13:56)
| | Дело происходит на локальной машине (Windows) или на сервере (UNIX)? | |
|
|
|
|
|
|
| Вот по этому - http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=145
делал уменьешние изображения. Скрипт с одними изображениями работает, с другими - нет. Разница у изображений, которые ему подсовываю только в размерах (кб). Те, чьл до 300 кило - обрабатываются, те, что больше - нет. Размеры выявил экспериментально, поэтому они примерные. Как и где настроить, чтобы либа работала с изображениями, хотя бы до 500 кило? Или дело не в этом? | |
|
|
| |
|