webForumDet fria alternativet

Skapa gif, png, jpg thumbs

PHP

5 svar · 549 visningar · startad av apaaa

Medlem sedan nov. 200559 inlägg
Frågan#1

Hej, lite problem med mitt bild script.

För att skapa en jpg bild ser kör jag följande kod

	$dst_im = imagecreatetruecolor($dstW, $dstH); 
	imagecopyresampled ( $dst_im, $src_im, 0, 0, 0, 0, $dstW, $dstH, $srcW, $srcH);
	imagejpeg($dst_im, "Bilder/TEST/apa.$filetyp[1]", 90); 
	imagedestroy($src_im); 
	imagedestroy($dst_im);

Men hur gör jag för skapa png, gif bilder?
om jag bara byter ut imagejpeg till imagepng eller imagegif så blir bilderna helt svart, varför?

Antar att imagecopyresampled bara fungerar på jpg-bilder, vad skriver man istället för png och gif?

Mvh Anders.

Medlem sedan okt. 20001 285 inlägg
#2

du använder imageCreateFromPNG() och imagePNG() samt se till att du har libpng installerat

eller det kanske räcker med GD bara .. ?

Medlem sedan nov. 200559 inlägg
#3

Fuel skrev:

du använder imageCreateFromPNG() och imagePNG() samt se till att du har libpng installerat

eller det kanske räcker med GD bara .. ?

Jo, så långt fungerar det men, om jag vill göra om storleken(x*y) på den också?

Medlem sedan okt. 20001 285 inlägg
#4
$src_img=imagecreatefrompng($name);
// width & height från bilden
$old_w=imageSX($src_img);
$old_h=imageSY($src_img);
// Egna mått
$thumb_w="200";
$thumb_h="100";
$dst_img=ImageCreateTrueColor($thumb_w,$thumb_h);
imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_w,$old_h);

Hoppas jag inte har tokfel .. det var ett tag sen.. :bire

Edit: blir ett mellanslag i thumb_h

Medlem sedan nov. 200559 inlägg
#5

Fuel skrev:

$src_img=imagecreatefrompng($name);
// width & height från bilden
$old_w=imageSX($src_img);
$old_h=imageSY($src_img);
// Egna mått
$thumb_w="200";
$thumb_h="100";
$dst_img=ImageCreateTrueColor($thumb_w,$thumb_h);
imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_w,$old_h);

Hoppas jag inte har tokfel .. det var ett tag sen.. :bire

Edit: blir ett mellanslag i thumb_h

Så ser min kod ungfär, men bilderna blir hetl svarta, både för png och gif.

Min kompletta kod;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>

<body>
<form id="form" name="form" enctype="multipart/form-data" method="post" action="test.php?do=apa">
  <input type="file" name="file" />
  <input type="submit" name="Knapp" value="Skicka" />
</form>
</body>
</html>
<?php
if($_REQUEST['do'] == "apa") {

$fileName = $_FILES['file']['name'];
$fileType = $_FILES['file']['type'];
$fileSize = $_FILES['file']['size'];
$fileTmpName = $_FILES['file']['tmp_name'];
$fileError = $_FILES['file']['error'];

$filetyp = split("/", $fileType);
$apa = "1.$filetyp[1]";
echo $filetyp[1];

if($fileName != ""){
if($fileError == 0){
$filePath = "D:/WWWROOT/Projekt/Bilder/Test/$apa";
move_uploaded_file($fileTmpName,$filePath);
}else{
die("ett fel uppstod vid uppladdningen.");
}
}

if($filetyp[1] == "jpg" or $filetyp[1] == "jpeg") {
 $src_im = imagecreatefromjpeg($filePath); 
 }
 elseif($filetyp[1] == "gif") {
  $src_im = imagecreatefromgif($filePath); 
 }
 elseif($filetyp[1] == "png") {
  $src_im = imagecreatefrompng($filePath);
 }
 $srcW = imagesx($src_im); 
 $srcH = imagesy($src_im); 
 $thumb = 300;
if($srcW < 300 and $srcH < 300) {
 	$dstW = $srcW;
	$dstH = $srcH;
	}
elseif($srcW > $srcH) {
	$ratio = $srcH / $srcW;
	$dstH = $thumb * $ratio;
	$dstW = $thumb;
	}
elseif($srcH > $srcW) {
	$ratio = $srcW / $srcH;
	$dstW = $thumb * $ratio;
	$dstH = $thumb;
	}
elseif($srcH == $srcW) {
	$dstW = $thumb;
	$dstH = $thumb;
	}
	echo "width $dstW <br> height $dstH<br>$ratio<br>$fileType";
	 
	$dst_im = imagecreatetruecolor($dstW, $dstH); 
	imagecopyresampled ( $dst_im, $src_im, 0, 0, 0, 0, $dstW, $dstH, $srcW, $srcH);
	imagepng($dst_im, "Bilder/TEST/apa.png"); 
	
	#imagejpeg($dst_im, "Bilder/TEST/apa.jpg");
	#imagegif($dst_im, "Bilder/TEST/apa.gif");  
	
	imagedestroy($src_im); 
	imagedestroy($dst_im);
	

	  }
?>

imagejpeg($dst_im, "Bilder/TEST/apa.png"); fungerar helt utmärkt men imagegif och png vill inte fungera.

Om jag försöker kopiera en gifbild eller en pngbild och spara som jpgbild eller dylikt så blir den också svart, varför?

Mvh Anders.

Medlem sedan nov. 200559 inlägg
#6

Nu har jag fått ordning på det, på något sätt?

Måste varit någon med min phpinstall att göra, installerad om sedan fungerade det, efter att prövat olika saker i ca 8timmar :\

Skam den som ger sig!

258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)