11. juli 2009 - 17:53
Der er
3 kommentarer og 1 løsning
png i GDlib
når der går en png fil i scriptet meldes fejl: "Billedet "xxx.png" kan ikke vises, da det indeholder fejl." if($row['id'] == 1) $src_img = imagecreatefromjpeg($image); elseif($row['id'] == 2) $src_img = imagecreatefromgif($image); elseif($row['id'] == 3) $src_img = imagecreatefrompng($image); $src_width = imagesx($src_img); $src_height = imagesy($src_img); if($scale == -1) { $dst_width = $src_width; $dst_height = $src_height; } else { $scale = $src_height / $height; $dst_width = $src_width / $scale; $dst_height = $src_height / $scale; if($width < $dst_width) { $scale = $dst_width / $width; $dst_width = $dst_width / $scale; $dst_height = $dst_height / $scale; } } $dst_img = imagecreatetruecolor($dst_width, $dst_height); imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $dst_width, $dst_height, $src_width, $src_height); if($row['id'] == 1) imagejpeg($dst_img, '', $quality); elseif($row['id'] == 2) imagegif($dst_img, '', $quality); elseif($row['id'] == 3) imagepng($dst_img, '', $quality); imagedestroy($src_img); imagedestroy($dst_img);
Annonceindlæg tema
må heller lige få lidt mere med :) hvis jeg vælger at sætte $omit_gd og gå udenom GDlib meldes ingen fejl og billedet vises if($omit_gd) echo file_get_contents($image); else { if($row['id'] == 1) $src_img = imagecreatefromjpeg($image); elseif($row['id'] == 2) $src_img = imagecreatefromgif($image); elseif($row['id'] == 3) $src_img = imagecreatefrompng($image); $src_width = imagesx($src_img); $src_height = imagesy($src_img); if($scale == -1) { $dst_width = $src_width; $dst_height = $src_height; } else { $scale = $src_height / $height; $dst_width = $src_width / $scale; $dst_height = $src_height / $scale; if($width < $dst_width) { $scale = $dst_width / $width; $dst_width = $dst_width / $scale; $dst_height = $dst_height / $scale; } } $dst_img = imagecreatetruecolor($dst_width, $dst_height); imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $dst_width, $dst_height, $src_width, $src_height); if($row['id'] == 1) imagejpeg($dst_img, '', $quality); elseif($row['id'] == 2) imagegif($dst_img, '', $quality); elseif($row['id'] == 3) imagepng($dst_img, '', $quality); imagedestroy($src_img); imagedestroy($dst_img); }
Slettet bruger
11. juli 2009 - 18:33
#2
Kan det være fordi du mangler at sætte header? header("Content-type: image/png");
header er også i orden :) fordi når jeg udskriver filen med file_get_contents() er der ingen fejl :-/
Vi tilbyder markedets bedste kurser inden for webudvikling