Avatar billede cmau Nybegynder
22. marts 2005 - 17:52 Der er 15 kommentarer og
1 løsning

Lægge et billede i bunden af et andet

Hejsa, hvordan kan man tage min nedenstående kode også smide fx copybund.jpg på billedet, så den bliver 26 px højre? Det er kun $til der skal have det!

$til = "billeder/galleri/store/".mysql_insert_id().".jpg";
$til_lille = "billeder/galleri/".mysql_insert_id().".jpg";

copy($_FILES["billede"]["tmp_name"],$til);

$imgsize = getimagesize($til);

$width    = 75;
$height    = 75;

$dst_img = imagecreatetruecolor($width,$height);
$src_img=ImageCreateFromJpeg("$til");

ImageCopyResampled($dst_img,$src_img,0,0,0,0,$width,$height,ImageSX($src_img),ImageSY($src_img));

ImageJpeg($dst_img, $til_lille, 100);
Avatar billede barklund Nybegynder
22. marts 2005 - 18:01 #1
Hm, det bliver et skud, men noget i stil med:

<?php
$fra = $_FILES["billede"]["tmp_name"];
$til = "billeder/galleri/store/".mysql_insert_id().".jpg";
$til_lille = "billeder/galleri/".mysql_insert_id().".jpg";
$bund = "copybund.jpg";
//
$imgsize = getimagesize($fra);
$bottomsize = getimagesize($bund);
//
$norm_img = imagecreatetruecolor($imgsize[0],$imgsize[1]+$bottomsize[1]);
$src_img = ImageCreateFromJpeg($fra);
ImageCopyResampled($dst_img,$src_img,0,0,0,0,$width,$height,$imgsize[0],$imgsize[1]);
$bottom = ImageCreateFromJpeg($bund);
ImageCopyResampled($dst_img,$src_img,0,$imgsize,0,0,$bottomsize[0],$bottomsize[1],$imgsize[0],$imgsize[1]+$bottomsize);
ImageJpeg($norm_img, $til, 100);
//
$width = 75;
$height = 75;
$dst_img = imagecreatetruecolor($width,$height);
ImageCopyResampled($dst_img,$src_img,0,0,0,0,$width,$height,$imgsize[0],$imgsize[1]);
ImageJpeg($dst_img, $til_lille, 100);
?>

Så kopierer den copybund.jpg over i bunden af det normal-størrelse billede (strechet ud i bredden) og laver en thumbnail af det originalen i en fast størrelse.

--
Morten Barklund
Avatar billede cmau Nybegynder
22. marts 2005 - 18:13 #2
Hmm fik en anden ide.. Kan du gøre så den bare smider 26 px hvid i bunden også laver farven om til #F7DEB5 også skriver den $tekst på.. $tekst skal så indeholde fx. Copyrtigt bla bla.. så jeg selv kan ændre det
Avatar billede barklund Nybegynder
22. marts 2005 - 18:22 #3
Hm, et spørgsmål af gangen - nu har jeg jo lige lavet det :)

Men okay, jeg roder lige :)
Avatar billede cmau Nybegynder
22. marts 2005 - 18:23 #4
sorry, men kom på det , da du sagde "strechet ud i bredden"
Avatar billede barklund Nybegynder
23. marts 2005 - 11:26 #5
Hm, jeg ved altså ikke lige, hvad fonten skal være eller hvordan man lægger den op på serveren til at blive brugt.

<?php
$fra = $_FILES["billede"]["tmp_name"];
$til = "billeder/galleri/store/".mysql_insert_id().".jpg";
$til_lille = "billeder/galleri/".mysql_insert_id().".jpg";
//
$imgsize = getimagesize($fra);
$bottomheight = 26;
$r = 0xF7;
$g = 0xDE;
$b = 0xB5;
$font_r = 0;
$font_g = 0;
$font_b = 0;
$txt = "Her er min tekst";
//
$norm_img = imagecreatetruecolor($imgsize[0],$imgsize[1]+$bottomheight);
$bottomcolor = ImageColorAllocate($norm_img, $r, $g, $b);
$src_img = ImageCreateFromJpeg($fra);
ImageCopyResampled($dst_img,$src_img,0,0,0,0,$width,$height,$imgsize[0],$imgsize[1]);
$fontcolor = ImageColorAllocate($norm_img, $font_r, $font_g, $font_b);
$font = imageloadfont("04b.gdf");
imagestring($norm_img, $font, 20, $imgsize[1]+5, $text, $fontcolor);
ImageJpeg($norm_img, $til, 100);
//
$width = 75;
$height = 75;
$dst_img = imagecreatetruecolor($width,$height);
ImageCopyResampled($dst_img,$src_img,0,0,0,0,$width,$height,$imgsize[0],$imgsize[1]);
ImageJpeg($dst_img, $til_lille, 100);
?>

Du kan se tips om at bruge fonte her: http://dk.php.net/manual/en/function.imageloadfont.php

Det kan jeg ikke lige umiddelbart hjælpe dig videre med :)

--
Morten Barklund
Avatar billede cmau Nybegynder
24. marts 2005 - 07:35 #6
Uploader den både det store og det lille?
Avatar billede cmau Nybegynder
24. marts 2005 - 07:43 #7
Warning: imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error: in /customers/woox.dk/woox.dk/httpd.www/nicenews/admin_galleri.php on line 17

Warning: imagecreatefromjpeg(): '/tmp/phpH9TL52' is not a valid JPEG file in /customers/woox.dk/woox.dk/httpd.www/nicenews/admin_galleri.php on line 17

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /customers/woox.dk/woox.dk/httpd.www/nicenews/admin_galleri.php on line 18

Warning: imageloadfont(04b.gdf): failed to open stream: No such file or directory in /customers/woox.dk/woox.dk/httpd.www/nicenews/admin_galleri.php on line 20

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /customers/woox.dk/woox.dk/httpd.www/nicenews/admin_galleri.php on line 27
Avatar billede barklund Nybegynder
24. marts 2005 - 14:20 #8
Mjaa, det burde den. Hm, har du prøvet at smide lidt debugging ind i den? Altså printe ting og sager ind i mellem?

For eksempel:

$imgsize = getimagesize($fra);
var_dump($imgsize);exit;

Så kan vi da se, om det uploadede overhovedet er en rigtig jpeg (hvilket der jo oven over står i fejlmeddelelsen, at det ikke er).

Du skal være sikker på, at du uploader en jpeg - ellers giver det selvfølgelig fejl. Dog bør du tilføje en håndtering af sådanne fejl - men det kan man jo altid tilføje.
Avatar billede cmau Nybegynder
26. marts 2005 - 19:30 #9
Hvilke ting synes du jeg skal sætte på?
Avatar billede barklund Nybegynder
26. marts 2005 - 19:32 #10
Har du tilføjet ovenstående var_dump for at teste?
Avatar billede cmau Nybegynder
29. marts 2005 - 21:00 #11
Hmm vil du ikke prøve at sætte de der ting på? Er nemlig ikke så god til gd-jpeg :/
Avatar billede barklund Nybegynder
29. marts 2005 - 21:06 #12
det har intet med gd-jpeg - jeg siger bare at du skal skrive kalde var_dump efter getimagesize - præcis som jeg har vist ovenover. Det er helt almindelig php.
Avatar billede cmau Nybegynder
04. april 2005 - 14:47 #13
Smider du svar? Fandt en anden udvej, men nu har du jo prøvet ;)
Avatar billede barklund Nybegynder
04. april 2005 - 14:48 #14
Helt i orden :)
Avatar billede barklund Nybegynder
04. april 2005 - 14:48 #15
Nu med svar :)
Avatar billede barklund Nybegynder
05. april 2005 - 14:28 #16
Tark for points :)
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