Visa ett inlägg
Oläst 2004-08-09, 14:00 #8
festizs avatar
festiz festiz är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2004
Inlägg: 302
festiz festiz är inte uppkopplad
Flitig postare
festizs avatar
 
Reg.datum: Jun 2004
Inlägg: 302
Jag använder denna fina funktion för att räkna ut proportioner och liknande vid skapande av tumnaglar.
Därmed får man en bild som är ett fast antal pixlar stor där bilden inuti kan ha sina korrekta proportioner men att bilden, layoutmässigt alltid tar upp lika stor plats. Börjar dock lacka på att GD är så dålig på att göra tumnaglar och funderar på att gå över till NetPBM eller ImageMagick
Kod:
function imageresize( $bild, $maxbredd, $maxhojd, $mapp, $bakgrund) {
if(!isset ($bild) || !isset($maxhojd) || !isset($maxbredd) || !isset($mapp) || !isset($bakgrund) ){
exit("Du har utel&auml;mnat n&aring;got vitalt argument i funktionen!<br />
Du b&ouml;r kalla funktionen med <pre>'imageresize( bildnamn, maxbredd, maxh&ouml;jd, m&aring;lmapp, hexadecimal bakgrundsf&auml;rg)'</pre>");
}
if($bakgrund == 0)
$bakgrund="FFFFFF";
$bild_path = "/home/festiz/web/new/images/products/large/" . $bild;
$target_path = "/home/festiz/web/new/images/products/" . $mapp . "/" . $bild;
list($width, $height, $type, $attr) = getimagesize( $bild_path );
error_reporting (E_ALL);
$abc = imagecreatefromjpeg( $bild_path );
$def = imagecreatetruecolor( $maxbredd, $maxhojd );
$ratio = $height/$width;
if ( $ratio<1 )
{
	$new_bredd=$maxbredd;
	$new_hojd=$new_bredd*$ratio;
} else {
	$new_hojd=$maxhojd;
	$new_bredd=$new_hojd*$ratio;
}
sscanf($bakgrund, "%2x%2x%2x", $red, $green, $blue);
$stringcolor=ImageColorAllocate($def,$red,$green,$blue);
imagefilledrectangle($def, 0, 0, $maxbredd, $maxhojd,$stringcolor);
imagecopyresized($def, $abc, 0, 0, 0, 0, $new_bredd, $new_hojd, $width, $height);
imagejpeg($def, $target_path, 100);
ImageDestroy($abc);
ImageDestroy($def);
}
Du får använda denna funktion hur du vill och skriva om den hur du vill, även kommersiella projekt går bra då jag betraktar denna kodsnutt som släppt under GPL.
festiz är inte uppkopplad   Svara med citatSvara med citat