Avatar billede cmau Nybegynder
13. oktober 2006 - 14:56 Der er 8 kommentarer og
1 løsning

Hvad ser der når jeg laver fra jpg til png?

Hejsa

Hvordan kan det være billedet bliver hvidt og sort uden om, når det skulle være transperent?

http://asd.fuckingloveyou.com/createimage.php?name=asd

Hvis jeg blot taget heart.png og laver om til .jpg og sætter denne type:
imagecreatefromjpeg ser alt godt ud, bortset fra at jeg ikke kan have transperent baggrund.


Min kode:



Koden:

<?php
// Set the content-type
header("Content-type: image/png");

// Create the image
$im = imagecreatefrompng("images/heart.png");

// Create some colors
$grey = imagecolorallocate($im, 128, 128, 128);
$white = imagecolorallocate($im, 250, 250, 250);

$font = 'AGENCYR.TTF';

if(!empty($_GET['name2'])) {
    // The text to draw
    if(!empty($_GET['name']) && !empty($_GET['name2'])) {
        $name = strtoupper($_GET['name']).' + '.strtoupper($_GET['name2']);
    }
    $text = '4EVER';
    // Replace path by your own font path

    $sw = imagesx( $im );
    $box = imagettfbbox( 30, 0, $font, $text );
    $bw = abs( $box[4] - $box[0] );

    // Add some shadow to the text
    $posX = ( $sw - $bw ) / 2;
    imagettftext($im, 30, 0, $posX+1, 251, $grey, $font, $text);
    // Add the text
    imagettftext($im, 30, 0, $posX, 250, $white, $font, $text);

    $box = imagettfbbox( 50, 0, $font, $name );
    $bw = abs( $box[4] - $box[0] );

    // Add some shadow to the text
    $posX = ( $sw - $bw ) / 2;
    imagettftext($im, 50, 0, $posX+1, 191, $grey, $font, $name);
    // Add the text
    imagettftext($im, 50, 0, $posX, 191, $white, $font, $name);
}  else {
    // The text to draw
    if(!empty($_GET['name'])) {
        $name = strtoupper($_GET['name']);
    }
    $text = 'I FUCKING LOVE YOU,';
    // Replace path by your own font path

    $sw = imagesx( $im );
    $box = imagettfbbox( 30, 0, $font, $text );
    $bw = abs( $box[4] - $box[0] );

    // Add some shadow to the text
    $posX = ( $sw - $bw ) / 2;
    imagettftext($im, 30, 0, $posX+1, 171, $grey, $font, $text);
    // Add the text
    imagettftext($im, 30, 0, $posX, 170, $white, $font, $text);

    $box = imagettfbbox( 60, 0, $font, $name );
    $bw = abs( $box[4] - $box[0] );

    // Add some shadow to the text
    $posX = ( $sw - $bw ) / 2;
    imagettftext($im, 60, 0, $posX+1, 251, $grey, $font, $name);
    // Add the text
    imagettftext($im, 60, 0, $posX, 250, $white, $font, $name);
}

// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>
Avatar billede nizo Nybegynder
13. oktober 2006 - 14:59 #1
Kunne måske være noget med at jpeg ikke understøtter transparency?
Avatar billede Cars10 Praktikant
13. oktober 2006 - 15:01 #2
jpeg understøtter ikke tranperant baggrund
Avatar billede Cars10 Praktikant
13. oktober 2006 - 15:02 #3
det er kun gif og png der gør det
Avatar billede cmau Nybegynder
13. oktober 2006 - 15:06 #4
Jamen min kode som IKKE virker kører med png hele vejen igennem og mit billeder er transperent.

Hvis jeg så laver $im = imagecreatefromjpeg("images/heart.jpg"); og billedet bare har en sort baggrund virker det fint så den kun giver sort. Og ikke fejl baggrunden som i linket.
Avatar billede nizo Nybegynder
13. oktober 2006 - 15:09 #5
Så har du lavet en konvert fejl et eller andet sted..
Avatar billede cmau Nybegynder
13. oktober 2006 - 15:10 #6
Hvad vil det sige?
Avatar billede cmau Nybegynder
13. oktober 2006 - 15:48 #7
Kan ikke rigtig se hvad jeg skulle have gjort forkert.
Avatar billede cmau Nybegynder
13. oktober 2006 - 21:22 #8
Kan overhovedet ikke forstå det.
Avatar billede cmau Nybegynder
14. oktober 2006 - 09:38 #9
Efter en del google søgning fandt jeg dette:
imageAlphaBlending($im, false);
imageSaveAlpha($im, true);

Det ser da ud til at virke?
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