Vsechny zdravim mam vytvoreny script:
<?php
if (!$max_width)
$max_width = '500';
if (!$max_height)
$max_height = '500';
$size=GetImageSize($image);
$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;
}
else if (($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;
}
$src=ImageCreateFromJpeg($image);
$dst=ImageCreateTrueColor($tn_width,$tn_height);
imagecopyresampled($dst, $src, 0, 0, 0, 0,$tn_width,$tn_height,$width,$height);
ImageJpeg($dst,null,-1);
ImageDestroy($src);
ImageDestroy($dst);
?>
tento script pouzivam pro generovani nahledu za behu a chtel bych aby to umelo generovat a rozpoznavat i formaty obrazku gif,bmp a png.
Smazil jsem se to pomoci manulau upravit ale marne tak proto prosimjestli nekdo nevi jak na to.Diky mov Petr
pomoci filetype() resp. pri praci se souborem $mujsoubor_type
ten jsem zkousel nejak zakomponovat do toho scriptu ale vubec mi to neslo a nefungovalo
petr
muj skriptik :)
$w je sirka
$h je vyska
$src je ceste k souboru
takze soubor.php?src=ahoj.gif&w=500&h=500
<?
if($w == "") {
echo "Nebyla zadána ąířka";
} elseif($h == "") {
echo "Nebyla zadána výąka";
} elseif($src == "") {
echo "Nebyla zadána adresa obrázku";
} else {
$v = getimagesize($src);
if($v[2] == "1") {
header("Content-type: image/gif");
$img_v = imagecreatefromgif($src);
} elseif($v[2] == "2") {
header("Content-type: image/jpeg");
$img_v = imagecreatefromjpeg($src);
} elseif($v[2] == "3") {
header("Content-type: image/png");
$img_v = imagecreatefrompng($src);
}
$s_w = $w/$v[0];
$s_h = $h/$v[1];
$s = ($s_w <= $s_h ? $s_w : $s_h);
$new_w = ceil($s*$v[0]);
$new_h = ceil($s*$v[1]);
$img_o = imagecreatetruecolor($new_w, $new_h);
imagecopyresampled($img_o, $img_v, 0, 0, 0, 0, $new_w, $new_h, $v[0], $v[1]);
if($v[2] == "1") {
imagegif($img_o);
} elseif($v[2] == "2") {
imagejpeg($img_o);
} elseif($v[2] == "3") {
imagepng($img_o);
}
imagedestroy($img_v);
imagedestroy($img_o);
}
?>
Používám podobný skript, bohužel mi to nefunguje pro GIF. Hlásí to "Fatal error: Call to undefined function: imagegif() ......". Nevíte někdo co s tím.
$img_info = GetImageSize($cesta);
switch ($img_info['mime'])
{
case 'image/gif':
if (imagetypes() & IMG_GIF) {
$ImageCreateFrom = "ImageCreateFromGIF";
$Image = "ImageGIF";
} else {
$error = 36;
}
break;
case 'image/jpeg':
if (imagetypes() & IMG_JPG) {
$ImageCreateFrom = "ImageCreateFromJPEG";
$Image = "ImageJPEG";
} else {
$error = 37;
}
break;
case 'image/png':
if (imagetypes() & IMG_PNG) {
$ImageCreateFrom = "ImageCreateFromPNG";
$Image = "ImagePNG";
} else {
$error = 38;
}
break;
case 'image/wbmp':
if (imagetypes() & IMG_WBMP) {
$ImageCreateFrom = "ImageCreateFromWBMP";
$Image = "ImageWBMP";
} else {
$error = 39;
}
break;
case 'image/xbm':
if (imagetypes() & IMG_WBMP) {
$ImageCreateFrom = "ImageCreateFromXBM";
$Image = "ImageJPEG";
} else {
$error = 40;
}
break;
case 'image/xpm':
if (imagetypes() & IMG_WBMP) {
$ImageCreateFrom = "ImageCreateFromXPM";
$Image = "ImageJPEG";
} else {
$error = 41;
}
break;
default:
$error = 42;
break;
}
$img_source = $ImageCreateFrom($cesta);
$img_target = ImageCreateTrueColor($width,$height); ImageCopyResampled($img_target,$img_source,0,0,0,0,$width,$height,$img_info[0],$img_info[1]);
$img_2_file = $Image($img_target,$cesta);
ImageDestroy($img_target);
Vráťa: S tím se nic nedá dělat. Funkce ImageGIF() není na wz.cz podporována. Knihovna GD2 s ní tuším nemůže pracovat, kvůli autorským právům jimiž je formát GIF zatížen. Proto je nutné se GIFu vyhnout a používat raději formát PNG-8.
Nejedna se o autorska prava. Evropsky patent na LZW kompresni algoritmus, ktery pouziva GIF, vyprsel 18. cervna 2004. Tusim, ze nekdy v roce 1999 bylo umozneni pouzivat GIF zdarma pro nekomercni ucely.
Ty brďo donny ty víš snad ouplně šecko. Nechodíš ty na střední školu?
stip: donny to třeba ví, nám ostatním zbývá Google:
"The United States LZW patent expired on June 20th, 2003.. According to Unisys, the counterpart Canadian patent expires July 7, 2004, the counterpart patents in the United Kingdom, France, Germany and Italy expire June 18, 2004, and the Japanese counterpart patents expire June 20, 2004. "
http://lpf.ai.mit.edu/Patents/Gif/Gif.html
dyť já vím. já do něj jenom rejpám :o)