Gå til innhold

[LØST] Legge tekst på et bilde


Anbefalte innlegg

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
Lenke til kommentar
Videoannonse
Annonse

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);
?>

Lenke til kommentar

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
Lenke til kommentar
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
Lenke til kommentar

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å
×
×
  • Opprett ny...