Avatar billede n-emy Nybegynder
19. maj 2007 - 00:08 Der er 16 kommentarer og
1 løsning

Programmere et billede?

Hej

Jeg tænkte på hvordan man koder et billede? Hvis jeg f.eks. har et billede og vil have php til at skrive noget på billedet på bestemte koordinater eller ligger et billede oveni på bestemte koordinater, hvordan gør man det?:)
Avatar billede mccookie Seniormester
19. maj 2007 - 00:50 #1
Her er en googlesøgning på det:

http://www.google.com/search?sourceid=navclient&ie=UTF-8&rls=WZPA,WZPA:2006-18,WZPA:en&q=watermark+php
Avatar billede lolman Nybegynder
19. maj 2007 - 08:11 #2
Avatar billede jakobdo Ekspert
19. maj 2007 - 09:32 #3
Du kan bruge denne funktion til f.eks. at loade et jpeg billede:

function LoadJpeg($imgname)
{
    $im = @imagecreatefromjpeg($imgname); /* Attempt to open */
    if (!$im) { /* See if it failed */
        $im  = imagecreatetruecolor(150, 30); /* Create a black image */
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);
        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
        /* Output an errmsg */
        imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}

til at skrive på billedet, kan du så bruge: imagestring() eller imagettftext().
Og når billedet så skal vises, så kan du f.eks. bruge:
header("Content-type: image/jpeg");
imagejpeg($image,'',100); //100 = kvalitet, 100 = bedst, 0 = dårligst
imagedestroy($image);

eller vil du gemme billedet:
imagejpeg($image,$filename,100); //100 = kvalitet, 100 = bedst, 0 = dårligst
Avatar billede n-emy Nybegynder
12. juni 2007 - 23:52 #4
Hmm jeg ved ikke om jeg blev misforstået lidt, så nu prøver jeg at forklare det lidt bedre:)

Jeg har et billede der allerede ligger på nettet (Eksempelvis: /gfx/other/hejsa.png)
På det vil jeg gerne have skrevet en række ting med tekst og billeder og derefter gemme det nye billede (men stadig bevare det gamle) på /gfx/other/redigeret.png

Jeg har eksperimenteret lidt med de koder jeg har fundet frem til, men får bare fejlen:
Billedet xxxx.php kan ikke vises da det indeholder fejl? En der kan hjælpe?:)
Avatar billede jakobdo Ekspert
13. juni 2007 - 08:57 #5
Har du læst mit indlæg, det gør jo netop hvad du efterspørger.
Har du kigget på funktioenrne?
Avatar billede n-emy Nybegynder
13. juni 2007 - 12:59 #6
jakobdo:

Jep har også prøvet det af, men jeg er ikke så god til håndtering af billeder i PHP endnu, så ved faktisk ikke helt hvad jeg skal gøre med den? Gik ud fra at man skulle definere $imgname, så satte $imgname til "$rod/mapperne imellem/billede.png, og da mit billede er png ændrede jeg jpeg i funktionen til png, men det gik ikke helt:)
Avatar billede jakobdo Ekspert
13. juni 2007 - 13:10 #7
Sådan måske:

<?php
function LoadPNG($imgname)
{
    $im = @imagecreatefrompng($imgname); /* Attempt to open */
    if (!$im) { /* See if it failed */
        $im  = imagecreate(150, 30); /* Create a blank image */
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);
        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
        /* Output an errmsg */
        imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}

$myImg = LoadPNG('/gfx/other/hejsa.png');
$textcolor = imagecolorallocate($myImg, 0, 0, 255);
imagestring($myImg, 5, 0, 0, "Hello world!", $textcolor);
imagepng($myImg,'/gfx/other/redigeret.png');

?>
Avatar billede n-emy Nybegynder
14. juni 2007 - 12:06 #8
Det virkede:D Så har jeg kun 1 spørgsmål (sorry:)). Hvordan ændrer jeg skrifttype, størrelse osv.? :)
Avatar billede jakobdo Ekspert
14. juni 2007 - 12:29 #9
Der skal du kigge på: http://www.php.net/imagettftext
Avatar billede jakobdo Ekspert
14. juni 2007 - 12:30 #10
Og hvis du ikke skal have specielle skrifttyper, kan du kigge på den funktion jeg har brugt i eksemplet: http://www.php.net/imagestring
Avatar billede n-emy Nybegynder
17. juni 2007 - 22:19 #11
Sidste spørgsmål promise:) Du må gerne smide det med et svar så accepterer jeg :)

Hvordan smider jeg et billede ovenpå også udover tekst på bestemte koordinater??
Avatar billede jakobdo Ekspert
18. juni 2007 - 07:53 #12
Der skal du kigge på funktionen: http://www.php.net/imagecopymerge

Jeg har også noget kode som lægger et billede på et andet, som watermark.
Avatar billede n-emy Nybegynder
21. juni 2007 - 14:07 #13
Jeg bliver nødt til lidt guidance her med det sidste så er jeg vidst også færdig med at spørge :)

Er det ikke muligt at kombinere funktionerne? Vil gerne have brugt imagettftext og imagecopymerge i denne:


$rod          = $_SERVER['DOCUMENT_ROOT'];
$imgname = "$rod/gfx/games/sales/skabs/test.png";
function LoadPNG($imgname)
{
    $im = @imagecreatefrompng($imgname); /* Attempt to open */
    if (!$im) { /* See if it failed */
        $im  = imagecreate(150, 30); /* Create a blank image */
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);
        $font = 'Times New Roman.ttf';
        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
        /* Output an errmsg */
        imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}
$ikon = "$rod/gfx/other/watermarks/ngsmall.png";
$myImg = LoadPNG($imgname);
$textcolor = imagecolorallocate($myImg, 0, 0, 0);
$nr = 0;
for($i = 0; $i < 10; $i++) {
$forskydelse = 68+(20*$nr);
$nr = $nr+1;
if($nr == 1) {
$placering = 68;
} else {
$placering = $forskydelse;
}
$textcolor = imagecolorallocate($myImg, 0, 0, 0);
imagestring($myImg, 5, 10, $placering, "$nr", $textcolor);
imagestring($myImg, 5, 33, $placering, "Test", $textcolor);
imagestring($myImg, 5, 192, $placering, "Test ", $textcolor);
imagestring($myImg, 5, 302, $placering, "Test", $textcolor);
imagestring($myImg, 5, 409, $placering, "Test", $textcolor);

}
$billede2 = "$rod/gfx/games/sales/skabs/redigeret.png";
imagepng($myImg,$billede2);
Avatar billede n-emy Nybegynder
22. juni 2007 - 01:42 #14
jakob bare smid et svar så får du point, opretter det sidste spørgsmål som et seperat et:)
Avatar billede jakobdo Ekspert
22. juni 2007 - 08:33 #15
Jeg ville nu gerne hjælpe, havde bare ikke tid i går!
Avatar billede n-emy Nybegynder
22. juni 2007 - 10:09 #16
Det er iorden:) Du har jo hjulpet mig i det andet også :)
Avatar billede jakobdo Ekspert
22. juni 2007 - 10:11 #17
Takker for point.
Ja, jeg så lige der ikke var svaret på dit indlæg.
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