|
|
|
|
|
для: KPETuH
(12.12.2007 в 13:05)
| | У меня работает!!!!
Молодой человек, Вы даже не представляете как я вам благодарна. Спасибо Вам большое. | |
|
|
|
|
|
|
|
для: KPETuH
(12.12.2007 в 13:05)
| | нет, сжимать файл не должен, мне нужно выводить уменьшенное изображение. я пишу файловую фотогалерею.
Спасибо большое, сейчас попробую так как у вас показано. сделать. | |
|
|
|
|
|
|
|
для: Полина
(12.12.2007 в 10:08)
| | скажите а small.php должен сжимать сам файл или выводить уменьшенное превью?
для 2:
<?php
$cat='image';
$dir_img = opendir("./$cat");
while($img = readdir($dir_img))
{
if($img!="." && $img!=".." && $img!="dir.txt")
{
echo $path=$cat."/".$img;
$imgsize=getimagesize($path);
echo "<img src=\"small.php?file=$path\" border=0><br>";
echo "$imgsize[0]*$imgsize[1]<br>";
}
}
closedir($dir_img);
?>
|
и small.php
<?php
$wc=150;
$Oldimg=imagecreatefromjpeg($_GET['file']);
$w=imagesx($Oldimg);
$h=imagesy($Oldimg);
header("Content-type: image/jpeg");
$ratio=$w/$wc;
$w1=$w/$ratio;;
$h1=$h/$ratio;
$Newimg=imagecreatetruecolor($w1,$h1);
imagecopyresized($Newimg,$Oldimg,0,0,0,0,$w1,$h1,$w,$h);
imagejpeg($Newimg);
imagedestroy($Newimg);
imagedestroy($Oldimg);
?>
|
скрипты лежат в корне а картинки в папке название которой определяется переменной $cat | |
|
|
|
|
|
|
|
для: KPETuH
(12.12.2007 в 08:05)
| | ну вообщем нет, не заработало. а он понимает, что такое img?. Файл small.php я привела полностью. Там нет img, толлко переменная $img. Может быть нужно както передавать туда? Например GETом. Только не соображу как это сделать. | |
|
|
|
|
|
|
|
для: Полина
(11.12.2007 в 20:27)
| | > $Oldimg=imagecreatefromjpeg($img);
Помоему проблема в это строке, передавайте туда имя файла вместе с именем папки в каторой он находится....
<?
$Oldimag==imagecreatefromjpeg("./".$cat."/".$img);
|
за код не ручаюсь так как не вдавался в подробности вашего скрипта, но суда по симптомам описанными вами проблема в этом... | |
|
|
|
|
|
|
|
для: Trianon
(11.12.2007 в 20:29)
| | нет, так к сожалению не получается.
у меня теперь папки все английские, названия картинок - цифрами английскими без пробелов.
предыдущей строчкой полное изображение выводится , а следующей я пытаюсь уменьшить,
вместо этого получаю квадратик без картинки, на него нажимаю, он по ссылке переходит и изображение показывает нормально.
вообщем все работает, только почему то не сжимается. | |
|
|
|
|
|
|
|
для: Полина
(11.12.2007 в 20:27)
| |
" ... <img src=\"small.php?img=".urlencode($img)."\" border=0 > ... "
|
| |
|
|
|
|
|
|
|
для: steiger
(11.12.2007 в 09:50)
| | я уже поняла, что из-за русских названий не работало.
Если вам не сложно покажите пример пожалуйста.
И у меня возникает еще одна проблема. Все картинки которые я читаю из созданной пользователем папки должны перед выводом быть обработаны файлом, который их будет сжимать. Но он находиться в основном каталоге, а не в этой папке и картинок не распознает.
Т.е. вот:
{
chdir("./$cat");
$dir_img = opendir(".");
while($img = readdir($dir_img))
{
if($img!="." && $img!=".." && $img!="dir.txt")
{
echo "$img<br>";
$imgsize=getimagesize($img);
include "small.php";
echo "<img src=\"". urlencode($cat)."/".urlencode($img)."\" border=0>";
echo "$imgsize[0]*$imgsize[1]<br>";
}
}
closedir($dir_img);
}
где small.php
$wc=150;
$Oldimg=imagecreatefromjpeg($img);
$w=imagesx($Oldimg);
$h=imagesy($Oldimg);
header("Content-type: image/jpeg");
$ratio=$w/$wc;
$w1=$w/$ratio;;
$h1=$h/$ratio;
$Newimg=imagecreatetruecolor($w1,$h1);
imagecopyresampled($Newimg,$Oldimg,0,0,0,0,$w1,$h1,$w,$h);
imagejpeg($Newimg,"",100);
imgdestroy($Newimg);
imgdestroy($Oldimg);
Если писать код где выбираем не каталог $cat а основную директорию. он у меня работает
а так почему то нет.
я не понимаю как к нему путь написать.
я include сначала заменяла строчкой
echo "<a href=\"". urlencode($cat)."/".urlencode($img)."\" target=_blank><img src="\small.php?img=$img\" border=0><br></a>";
но ничего нет. ссылки работают,а картинки не тоображаются.
я думаю что эта строчка правильней , чем инклюд. | |
|
|
|
|
|
|
|
для: Полина
(10.12.2007 в 23:05)
| | Название важно. Интересно, где Вы видели в адресной строке русские символы... И пробелы.
Пользователь может вводить имя создаваемой директории русскими буквами. А в скрипте лучше сделать перекодировку русских символов в латиницу. Думается, никакой разницы, будет называться папка "мои_фото" или "moi_foto". Если интересует, могу привести здесь пример простенькой функции транслитерования.
Избавьтесь Вы от кириллицы - проще будет. | |
|
|
|
|
|
|
|
для: Полина
(10.12.2007 в 23:05)
| | как вариант сделать такие имена папок
http://site.ru/imgs/%CD%E0+%EF%F3%F2%E8/kartinka.jpg
всмысле такой будет путь фактически , а для читаемости декодировать при выводе в браузере.
windows так и делает мне кажется, только когда в адресной строке пробелы их браузер преобразует в %20 , а не в +
такое сделает rawurlencode();
всмысле корректнее будет имя папки %CD%E0%20%EF%F3%F2%E8 , и можно будет попробовать в адресной строке набрать просто http://site.ru/imgs/На пути/kartinka.jpg
// хотя нет :)
русские буквы так и остались в адресной строке :)) | |
|
|
|
|