Avatar billede bigo Nybegynder
15. maj 2006 - 13:56 Der er 13 kommentarer og
1 løsning

sort billede ved imagerotate

Hejsa.

Jeg har lavet en lille dims med noget imagerotate.. og når den kører den igennem får jeg sorte billeder. Har søgt på php.net og her på exp.dk men uden held.

Nogen der kan fortælle mig hvorfor og hvordan jeg kommer uden om det..

$img_src = ImageCreateFromjpeg ($fra);
$img_des = ImageCreateTrueColor($width, $height) or die ("Fejl ved createtruecolor!");
$img_rot = imagerotate ($img_des, 90, -1); // har prøvet og gå fra 0 til -1 ifgl. forslag på exp.dk uden held.
Avatar billede sw_red_6 Nybegynder
15. maj 2006 - 14:06 #1
Øh er det mig der har misforstået et eller andet, eller skal du ikke bruge $img_src = ... i stedet for img_des = ... ?
Avatar billede sw_red_6 Nybegynder
15. maj 2006 - 14:08 #2
hov, det var ($img_src, 90, -1) og ($img_des, 90, -1) jeg mente
Avatar billede bigo Nybegynder
15. maj 2006 - 14:18 #3
Jo (har lige prøvet) men så får jeg roteret det originale billede og ikke det resized.
Avatar billede sw_red_6 Nybegynder
15. maj 2006 - 14:25 #4
øh, hvor resizer du ??
Avatar billede bigo Nybegynder
15. maj 2006 - 14:26 #5
if ($fejl == 0)
        {
            // Set a maximum height and width

                        $img_src = ImageCreateFromjpeg ($fra);

                        $true_width = imagesx($img_src);
                        $true_height = imagesy($img_src);
                        $width = $true_width;
                        $height = $true_height;
                       
                        if ($true_width > $max_stoerrelse || $true_height > $max_stoerrelse)
                        {
                        $delta = $max_stoerrelse/$true_width;
                        $width = round($true_width*$delta);
                        $height = round($true_height*$delta);
                       
                        if ($true_width>=$true_height)
                            {
                                $width=$max_stoerrelse;
                                $height = floor(($width/$true_width)*$true_height);
                            }
                            else
                            {
                                $height=$max_stoerrelse;
                                $width = floor(($height/$true_height)*$true_width);
                            }
                        }

                        if ($a_rot = "on" && $exif_orientation > 1)
                        {
                            $img_des = ImageCreateTrueColor($width, $height) or die ("Fejl ved createtruecolor!");
                            switch ($exif_orientation)
                            {
                                case 3: // 180 degrees clockwise
                                    $img_rot = imagerotate ($img_des, 180, -1);
                                    break;
                                case 6: // 270 degrees clockwise
                                    $img_rot = imagerotate ($img_des, 270, -1);
                                    break;
                                case 8: // 90 degrees clockwise
                                    $img_rot = imagerotate ($img_des, 90, -1);
                                    break;
                                default: break;
                            } // end switch exif_orientation
                           
                            $rot_width  = imagesx($img_rot);
                            $rot_height = imagesy($img_rot);

//                            echo "W:$width H:$height :$exif_orientation: TW:$rot_width - TH:$rot_height <br>";

                            imagecopyresampled($img_des, $img_rot, 0, 0, 0, 0, $rot_width, $rot_height, $rot_width, $rot_height) or die ("Darn, Error creating Rotated image: $fra : $til ($rot_width - $rot_height : $true_width - $true_height");
                        }
                        else
                        {
                            $img_des = ImageCreateTrueColor($width, $height);
                            imagecopyresampled($img_des, $img_src, 0, 0, 0, 0, $width, $height, $true_width, $true_height) or die ("Darn, Error creating Sampled image: $fra : $til ($width - $height : $true_width - $true_height");
                        }    // end if a_rot
                                               
                        imagejpeg($img_des,$til,100) or die ("Darn, Error creating JPEG");

                        imagedestroy ($img_src);
                        imagedestroy ($img_des);
                        move_uploaded_file($fra, $til_org) or die ("Darn, error moving image!");
          }
Avatar billede sw_red_6 Nybegynder
15. maj 2006 - 14:31 #6
hmm skal du så ikke først resize det og derefter rotere?
Avatar billede bigo Nybegynder
15. maj 2006 - 14:32 #7
Jo, kigger lige på det.. 2 min. ;-)
Avatar billede sw_red_6 Nybegynder
15. maj 2006 - 14:35 #8
problemet er vel at du her laver den resize af et tomt billede: imagecopyresampled($img_des, $img_rot, 0, 0, 0, 0, $rot_width, $rot_height, $rot_width, $rot_height)
$img_rot indeholder jo ikke det org. billede, men det "tomme kanvas" som du opretter her:
$img_des = ImageCreateTrueColor($width, $height)
Avatar billede bigo Nybegynder
15. maj 2006 - 14:37 #9
Damn.. nu virker det jo meget bedre.. fandens osse jeg ikke selv tænkte på det...
Avatar billede bigo Nybegynder
15. maj 2006 - 14:37 #10
takker for hjælpen.. man kan jo se sig blind på ting..
Avatar billede sw_red_6 Nybegynder
15. maj 2006 - 14:41 #11
hehe og når man tænker på at i dag er første gang jeg overhovedet har kigget på billedbehandling i PHP er det meget godt skudt ;-D
Avatar billede bigo Nybegynder
15. maj 2006 - 14:44 #12
Jeps..
Avatar billede sw_red_6 Nybegynder
15. maj 2006 - 14:46 #13
tak for point
Avatar billede bigo Nybegynder
15. maj 2006 - 14:51 #14
Var sg så lidt du ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester