Gå til innhold

[LØST] Legge tekst på et bilde


Anbefalte innlegg

Skrevet (endret)

Jeg prøver å lime inn en tekst over et bilde generert i PHP, men får bare et svart bilde. Koden jeg bruker er:

 

<?php
header("image/jpeg");

$im = imagecreate(300,300);
imagecolorallocate($im,180,160,255);

$im_over = imagecreate(300,300);
imagettftext($im_over, 20, 0, 50, 50, "FFFFFF", "Arial.TTF", "Min tekst...");
imagefilter($im_over, IMG_FILTER_SMOOTH, 0);

imagecopy($im, $im_over, 0, 0, 0, 0,imagesx($im_over), imagesy($im_over));

imagedestroy($im_over);
imagejpeg($im);
imagedestroy($im);
?>

Endret av simenss
Videoannonse
Annonse
Skrevet

Ser ikke hvorfor du skal opprette to bilder her. Du må også definere alle farger du skal bruke vha. imagecolorallocate(). Når du lager JPEG-bilder med PHP kan det også være veldig lurt å justere kvaliteten på bildet (siste parameter i imagejpeg()). Header er også feil, er rettet på under.

 

<?php
header("Content-Type: image/jpeg");

$im = imagecreate(300,300);
$bgcolor = imagecolorallocate($im,180,160,255);
$textcolor = imagecolorallocate($im, 255, 255, 255);

imagettftext($im, 20, 0, 50, 50, $textcolor, "Arial.TTF", "Min tekst...");
imagefilter($im, IMG_FILTER_SMOOTH, 0);

imagejpeg($im, null, 85);
imagedestroy($im);
?>

Skrevet (endret)

Takk for tipsene :roll: Grunnen til at jeg lager to bilder er at jeg kun vil bruke imagefilter() på teksten, IKKE på bakgrunnen. Prøv scriptet under så ser du at "Google-logoen" blir også uskarp :hmm:

 

<?php
header("Content-Type: image/jpeg");

$im = imagecreatefromgif("http://www.google.com/intl/no_ALL/images/logo.gif");
$textcolor = imagecolorallocate($im, 0, 0, 0);

imagettftext($im, 20, 0, 50, 50, $textcolor, "Arial.TTF", "Min tekst...");
imagefilter($im, IMG_FILTER_SMOOTH, 0);

imagejpeg($im, null, 85);
imagedestroy($im);
?>

 

EDIT:

Bildet blir da slik:

test.jpg

Endret av simenss
Skrevet

Ok, da skjønner jeg.

 

Tror ikke bildefunksjonene i PHP var beregnet på å bruke layers. Tror ikke GD har støtte for transparente bilder oppå andre heller, så.. Nei, jeg aner ikke.

 

Søkt på hotscripts? :p

Skrevet (endret)
Lite forslag (sikkert ikke at det funker), men hva med å lage teksten som ett bilde, med alle effeketene osv, å legge det over det andre?

Det er jo det jeg har prøvd på, men hvis jeg opretter et bilde i PHP som KUN inneholder teksten og et med bakgrunnen. Vil da det rundt teksten være gjennomsiktig? Og hvordan får jeg da lagt teksten over bakgrunnen? :hmm:

 

EDIT:

Altså: Tekst med gjennomsiktig bakgrunn -> "Legges over" bakgrunnen -> På det området av tekstbildet som er gjennomsiktig vil bakgrunnen synes

 

Denne koden virker ikke, men bare ment som en ide på hva jeg mener:

<?php
header("Content-Type: image/jpeg");

$im = imagecreate(300,300);
$bgcolor = imagecolorallocate($im,180,160,255);

$text = imagecreate(300,300);
$textcolor = imagecolorallocate($im, 255, 255, 255);
imagettftext($text, 20, 0, 50, 50, $textcolor, "Arial.TTF", "Min tekst...");
imagefilter($text, IMG_FILTER_SMOOTH, 0);

imageSetteEtBildeOverEtAnnet($text, $im); // Legger $text over $im

imagedestroy($text);
imagejpeg($im, null, 100);
imagedestroy($im);
?>

Endret av simenss

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...