оразмеряване и показване на снимка

ss

Registered
Aко ползва следния код:
echo ("<img src=/products/".$model.$i.".jpg width=\"100\" height=\"200\" border=\"0\" alt=\"\">");
като приемем, че
$model=007
$i=_small
трябва да се отвори картинка намираща се /products/007_small.jpg
Ако такава картинка липсва де се покаже изображение примерно:
/products/no_image.jpg

също ме интересува, как картинки с различни размер да се показват в поле с размери 100х200, че така както съм го написал горе ги разтегля или сбива, а аз искам да се събират в това поле и да се запази първоначалния им изглед
 
$imagepath = "/products/".$model.$i.".jpg";

if(file_exists($imagepath)){
echo ("<img src=".$imagepath." width=\"100\" height=\"200\" border=\"0\" alt=\"\">");
} else {
echo ("<img src=\"products/no_image.jpg\" width=\"100\" height=\"200\" border=\"0\" alt=\"\">");
}

Другия въпрос не го разбрах O_O :D
 
По 1-вият въпрос:
Код:
<?php
$file = "z.php";

if(!file_exists($file)) {
echo "File doesnt Exist";
}
else {
echo "File Exist";
}
?>

Примерно аз го пробвах с дали съществува файл z.php - Ти ще си го нагласиш да работи така както искаш :)

Въпрос 2: Аз лично ползвам е скриптче, което преди време си сглобих и перфектно ми умалява картинките (работи и с голямо резолюционни снимки - тествано с 12.1 mpx), ето и скрипта:
Код:
<?php

$max_width = 100; //Максимална широчина на thumb-овете
$max_height = 200; //Максимална височина на thumb-овете

$upfile = $_GET['image'];
$type = getimagesize($upfile);

    Header("Content-type: ".$type['mime']."");
   
    $size = getimagesize($upfile);
          $width = $size[0];
          $height = $size[1];
         
          $x_ratio = $max_width / $width;
          $y_ratio = $max_height / $height;

          if( ($width <= $max_width) && ($height <= $max_height) )
          {
               $tn_width = $width;
               $tn_height = $height;
          }
          elseif (($x_ratio * $height) < $max_height)
          {
               $tn_height = ceil($x_ratio * $height);
               $tn_width = $max_width;
          }
          else
          {
               $tn_width = ceil($y_ratio * $width);
               $tn_height = $max_height;
          }
   
     ini_set('memory_limit', '1024M');
   
if($type['mime'] == "image/jpeg") {
    $src = imagecreatefromjpeg($upfile);
    $dst = imagecreatetruecolor($tn_width, $tn_height);
    imagecopyresized($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
    imagejpeg($dst);
   ImageDestroy($src);
   ImageDestroy($dst);
}
elseif($type['mime'] == "image/png") {
    $src = imagecreatefrompng($upfile);
    $dst = imagecreatetruecolor($tn_width, $tn_height);
    imagecopyresized($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
    imagepng($dst);
   ImageDestroy($src);
   ImageDestroy($dst);
}
elseif($type['mime'] == "image/gif") {
    $src = imagecreatefromgif($upfile);
    $dst = imagecreatetruecolor($tn_width, $tn_height);
    imagecopyresized($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
    imagegif($dst);
   ImageDestroy($src);
   ImageDestroy($dst);
}
elseif($type['mime'] == "image/bmp") {
    $src = imagecreatefrombmp($upfile);
    $dst = imagecreatetruecolor($tn_width, $tn_height);
    imagecopyresized($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
    imagebmp($dst);
   ImageDestroy($src);
   ImageDestroy($dst);
}
?>

В момента съм задал стойности за ширина 100 и височина 200, така скрипта ще преработва картинката докъто и 2-те й стойности не станат равни или по-малки от зададените :)

Като примерно аз съм си кръстил файла resize.php и когато го ползвам, за да смали дадена картинка го правя така:
<img src="resize.php?image=kartinka.jpg" border="0" />

Дано да ти е станало ясно :)
 

Back
Горе