Avatar billede thorus Nybegynder
18. oktober 2004 - 21:49 Der er 36 kommentarer og
1 løsning

GD skriv gif/png

Jeg har en side hvor jeg har nogen menupunkter som jeg vil lave med gif/png så de bliver pænere end med normal skrift.

man man ikke med GD/PHP lave gif/png'ere?
Avatar billede coderdk Praktikant
18. oktober 2004 - 21:51 #1
Avatar billede thorus Nybegynder
18. oktober 2004 - 23:04 #2
Har fået det til at virke en smule men hvordan får jeg lavede png'en så den ikke laver en bg farve?

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

$menutext = $mt;

$filename = $mt.".png";

$im = @imagecreatetruecolor (200, 25)
      or die ("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate ($im, 102, 102, 102);
imagestring ($im, 3, 5, 5,  "$mt", $text_color);
imagepng ($im);
imagedestroy ($im);
?>

Har prøvede med: [ImageColorTransparent($im, $pink); ]
men det virker ikke.

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

$menutext = $mt;

$filename = $mt.".png";

$im = @imagecreatetruecolor (200, 25)
      or die ("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate ($im, 102, 102, 102);
ImageColorTransparent($im, $pink);
imagestring ($im, 3, 5, 5,  "$mt", $text_color);
imagepng ($im);
imagedestroy ($im);
?>
Avatar billede coderdk Praktikant
19. oktober 2004 - 01:14 #3
Hvis du bruger IE skal du lave fiks-fakserier ;)

http://www.koivi.com/ie-png-transparency/
Avatar billede thorus Nybegynder
19. oktober 2004 - 10:11 #4
men hvordan laver jeg png'en transparent? syntes ikke jeg kan se det ud fra linket.
Avatar billede coderdk Praktikant
19. oktober 2004 - 12:51 #5
Du skal sætte et filter på i din style - Du skal dog stadig bruge imagecolortransparent() til at lave selve billedet
Avatar billede thorus Nybegynder
19. oktober 2004 - 15:45 #6
er selve "lav png skriften" scriptet korrekt? og hvad mener du med style? skal jeg bruge css til at fjerne bg farve?
Avatar billede coderdk Praktikant
20. oktober 2004 - 13:38 #7
Dette lidt modificerede script virker:

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

$menutext = $mt = "menutekst";

$im = @imagecreatetruecolor (200, 25)
      or die ("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate ($im, 102, 102, 102);
$transpcolor = imagecolorallocate( $im, 0, 0, 0 );
imagecolortransparent( $im, $transpcolor );
imagestring ($im, 3, 5, 5,  "$mt", $text_color);
imagepng ($im);
imagedestroy ($im);
?>


Du kan se at billedet bliver transparent ved at bruge FireFox eller lign. browser.
(Jeg sætter sort til at være den transparente farve).

For at det virker i IE skal du bruge noget i stil med dette:

<div id="mitbillede" style="position:absolute; left:140px; height:400; width:400;
    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(
    src='dit_png_script.php', sizingMethod='scale');" >
</div>

Dejligt besværligt! :)
Avatar billede thorus Nybegynder
20. oktober 2004 - 14:29 #8
har nu ved hjælp af coderdk's assistance fået det til at virker "næsten"

mit problem er nu at hvis jeg ikke vil have at transparet skal være sort "0,0,0" men eks. hvis så laver den ikke transp. men bare en sort kasse..

<?php

  header ("Content-type: image/png");
  $im = imagecreatetruecolor (200, 25);
  $color = imagecolorallocate ($im, 102, 102, 102);
 
  $transpcolor = imagecolorallocate( $im, 255, 255, 255 );
  imagecolortransparent( $im, $transpcolor );
 
  imagettftext ($im, 12, 0, 10, 20, $color, "arial.ttf", "æøå123abc");
  imagepng ($im);
  imagedestroy ($im);

?>
Avatar billede coderdk Praktikant
20. oktober 2004 - 14:35 #9
Start med at fylde billedet med den farve du gerne vil have ;)
http://dk2.php.net/imagefill
Avatar billede thorus Nybegynder
20. oktober 2004 - 14:51 #10
ved ikke om jeg bare er udkørt eller hvad. men kan ikke få noget som helst til at virke idag. kan du ikke indsætte det i det eks. jeg skrev: 20/10-2004 14:29:36

Så skulle det også være det :)
Avatar billede coderdk Praktikant
20. oktober 2004 - 14:53 #11
<?php

  header ("Content-type: image/png");
  $im = imagecreatetruecolor (200, 25);
  $color = imagecolorallocate ($im, 102, 102, 102);
  $transpcolor = imagecolorallocate( $im, 255, 255, 255 );
  imagefill( $im, 1, 1, $transpcolor );
  imagecolortransparent( $im, $transpcolor );

  imagettftext ($im, 12, 0, 10, 20, $color, "arial.ttf", "æøå123abc");
  imagepng ($im);
  imagedestroy ($im);

?>
Avatar billede thorus Nybegynder
20. oktober 2004 - 19:49 #12
->> coderdk

<div id="mitbillede" style="position:absolute; left:140px; height:400; width:400;
    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(
    src='dit_png_script.php', sizingMethod='scale');" >
</div>

virker ikke! har du et andet forslag?
Avatar billede coderdk Praktikant
20. oktober 2004 - 20:42 #13
Dette virker da fint for mig:

png.php:

<?php

  header ("Content-type: image/png");
  $im = imagecreatetruecolor (200, 25);
  $color = imagecolorallocate ($im, 102, 102, 102);
  $transpcolor = imagecolorallocate( $im, 255, 255, 255 );
  imagefill( $im, 1, 1, $transpcolor );
  imagecolortransparent( $im, $transpcolor );

  imagettftext ($im, 12, 0, 10, 20, $color, "arial.ttf", "æøå123abc");
  imagepng ($im);
  imagedestroy ($im);

?>

test.html:

<html><head><title>test</title></head><body>
<div id="mitbillede" style="position:absolute; left:140px; height:25; width:200;
    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(
    src='png.php', sizingMethod='scale');" >
</div>
</body></html>
Avatar billede thorus Nybegynder
20. oktober 2004 - 21:05 #14
bruger du test.html når du henter et billede?

src='png.php ?? hvordan virker det?
Avatar billede coderdk Praktikant
20. oktober 2004 - 21:14 #15
png.php "er" billedet

"test.html" er siden hvor billedet vises, sådan:

<div id="mitbillede" style="position:absolute; left:140px; height:25; width:200; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='png.php',sizingMethod='scale');">
</div>
Avatar billede thorus Nybegynder
20. oktober 2004 - 21:17 #16
får bare blank side når jerg køre test.html
Avatar billede coderdk Praktikant
20. oktober 2004 - 21:31 #17
Det virker fint her: http://example.coder.dk/png.html
Bemærk - Dette virker *KUN* i Internet Explorer...
Avatar billede thorus Nybegynder
20. oktober 2004 - 21:35 #18
prøv at lav bgcolor=red i png.html
Avatar billede coderdk Praktikant
20. oktober 2004 - 21:37 #19
Mja?
Avatar billede thorus Nybegynder
20. oktober 2004 - 21:41 #20
så kommer der en hvid box og ikke transparent som med firefox
Avatar billede thorus Nybegynder
20. oktober 2004 - 21:42 #21
<html><head><title>test</title></head><body bgcolor=red>
<div id="mitbillede" style="position:absolute; left:140px; height:25; width:200; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='png.php',sizingMethod='scale');">
</div>
</body></html>
Avatar billede coderdk Praktikant
20. oktober 2004 - 21:43 #22
http://example.coder.dk/png.html er nu helt rød hos mig, med den teksten ;)
Avatar billede thorus Nybegynder
20. oktober 2004 - 21:47 #23
det fatter jeg ikke.

png.php

<?php
  header ("Content-type: image/png");
  $im = imagecreatetruecolor (200, 25);
  $color = imagecolorallocate ($im, 102, 102, 102);
  $transpcolor = imagecolorallocate( $im, 255, 255, 255 );
  imagefill( $im, 1, 1, $transpcolor );
  imagecolortransparent( $im, $transpcolor );

  imagettftext ($im, 12, 0, 10, 20, $color, "arial.ttf", "æøå123abc");
  imagepng ($im);
  imagedestroy ($im);
?>

test.html

<html><head><title>test</title></head><body bgcolor=red>
<div id="mitbillede" style="position:absolute; left:140px; height:25; width:200; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='png.php',sizingMethod='scale');">
</div>
</body></html>

nogen forskel fra dit? hvad er din GD version?
Avatar billede thorus Nybegynder
20. oktober 2004 - 21:49 #24
min version:

GD Version  bundled (2.0.15 compatible)
Avatar billede coderdk Praktikant
20. oktober 2004 - 21:55 #25
GD Version bundled (2.0.28 compatible)

Er det det samme hvis du udskifter <body bgcolor=red> med <body style="background-color: red;"> ?
Avatar billede thorus Nybegynder
20. oktober 2004 - 22:06 #26
prøver på en anden server
Avatar billede thorus Nybegynder
20. oktober 2004 - 22:08 #27
der virker den heller ikke. der GD Version bundled (2.0.22 compatible)
Avatar billede coderdk Praktikant
20. oktober 2004 - 22:45 #28
Udskiftede du din bgcolor med en style?
Avatar billede thorus Nybegynder
20. oktober 2004 - 22:47 #29
ja
Avatar billede coderdk Praktikant
21. oktober 2004 - 01:55 #30
Prøv lige at ændre $transpcolor til sort - altså

$transpcolor = imagecolorallocate( $im, 0, 0, 0 );
Avatar billede thorus Nybegynder
21. oktober 2004 - 08:22 #31
så ligner den sørme dit. hmmm men sort bg går ikke. løsning?
Avatar billede coderdk Praktikant
21. oktober 2004 - 09:36 #32
No idea :) Prøv med en anden farve, som ikke er hvid - Evt. 254,254,254
Ellers prøv at lege med imagecopymerge (der stod noget i nogle brugerkommentarer) - Hvis det ikke virker, skal gd nok opdateres?
Avatar billede thorus Nybegynder
21. oktober 2004 - 09:45 #33
glemte lige at skrive at jeg muligvis har fået det til at virke.

http://www.eksperten.dk/spm/552789
Avatar billede coderdk Praktikant
21. oktober 2004 - 09:50 #34
Det ser jo fint ud :) Hvad var løsningen?
Avatar billede thorus Nybegynder
21. oktober 2004 - 09:53 #35
Tilføjede ->  imagetruecolortopalette($im, false, 256); // convert
Avatar billede coderdk Praktikant
21. oktober 2004 - 09:56 #36
hehe ok :)
Avatar billede thorus Nybegynder
21. oktober 2004 - 09:58 #37
kan du se nogen ulemper ved ->  imagetruecolortopalette($im, false, 256); // convert
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