Avatar billede Slettet bruger
11. august 2003 - 20:59 Der er 6 kommentarer og
1 løsning

Uploade et img og resize til to forskellige thumbs

Jeg har med udgangspunkt i http://www.eksperten.dk/spm/279152 fået det berømte resize af et billede til at fungere. Men jeg har brug for at det uploadede billede resize's til to forskellige størrelser thumbs (lagt i to forskellige mapper)!?

Udpluk af koden:

$allowedTypes = array("image/jpeg", "image/pjpeg", "image/jpg"); //tilladte filtyper

$maxFileSize = 1030720; //tilladt max-størrelse i bytes

$max_width = 1024; //Ja, tilladte max. højde
$max_height = 768; //Tilladte max. bredde

IF($_FILES['fil']['size']> 0) {
//hvis brugeren har valgt en fil

//Er fil-typen blandt tilladte?
IF (in_array($_FILES['fil']['type'],$allowedTypes)) {

//Er fil-størrelsen under max. tilladte?
IF ($_FILES['fil']['size'] <= $maxFileSize) {

$ext = strtolower(end(explode(".", $_FILES['fil']['name'])));

//Find billedets størrelse
$size = getimagesize($_FILES['fil']['tmp_name']);

//Filen er ikke for bred
if($size[0] < $max_width) {

//Filen er ikke for høj
if($size[1] < $max_height) {

//Udregn skaleringsforholdet på thumb, her skal 100 rettes til den ønskede bredde
$new_w = 80;
$division = $size[0] / 80;
$new_h = $size[1] / $division;

//Lav et nyt billede så vi kan komme igang
$dst_img=ImageCreateTrueColor($new_w,$new_h);

$src_img=ImageCreateFromJpeg($_FILES['fil']['tmp_name']);

//Smid noget indhold i, og resize
ImageCopyResized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,ImageSX($src_img),ImageSY($src_img));

//*nix-path til thumbfilens endelige placering
$filename = $_SERVER['DOCUMENT_ROOT'] . "/images_product/small/" . $img= "$productnr.$ext";

//Udfør det hele
ImageJpeg($dst_img, $filename);
Avatar billede detox Nybegynder
11. august 2003 - 21:14 #1
Du kan jo kopiere den sidste del af koden, den efter:
//Udregn skaleringsforholdet på thumb, her skal 100 rettes til den ønskede bredde
og rette:
$new_w = 80; til den ønskede bredde
og
$filename = $_SERVER['DOCUMENT_ROOT'] . "/images_product/bigger/" . $img= "$productnr.$ext";
Avatar billede Slettet bruger
11. august 2003 - 21:17 #2
Sådan:?

//Udregn skaleringsforholdet på thumb, her skal 100 rettes til den ønskede bredde
$new_w = 80;
$division = $size[0] / 80;
$new_h = $size[1] / $division;
//Udregn skaleringsforholdet på thumb, her skal 100 rettes til den ønskede bredde
$new_w2 = 249;
$division2 = $size[0] / 249;
$new_h2 = $size[1] / $division2;

//Lav et nyt billede så vi kan komme igang
$dst_img=ImageCreateTrueColor($new_w,$new_h);
//Lav et nyt billede så vi kan komme igang
$dst_img2=ImageCreateTrueColor($new_w2,$new_h2);

$src_img=ImageCreateFromJpeg($_FILES['fil']['tmp_name']);
$src_img2=ImageCreateFromJpeg($_FILES['fil']['tmp_name']);

//Smid noget indhold i, og resize
ImageCopyResized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,ImageSX($src_img),ImageSY($src_img));
//Smid noget indhold i, og resize
ImageCopyResized($dst_img2,$src_img2,0,0,0,0,$new_w2,$new_h2,ImageSX($src_img2),ImageSY($src_img2));

//*nix-path til thumbfilens endelige placering
$filename = $_SERVER['DOCUMENT_ROOT'] . "/images_product/small/" . $img= "$productnr.$ext";
//*nix-path til thumbfilens endelige placering
$filename2 = $_SERVER['DOCUMENT_ROOT'] . "/images_product/" . $img= "$productnr.$ext";

//Udfør det hele
ImageJpeg($dst_img, $filename);
//Udfør det hele
ImageJpeg($dst_img2, $filename2);
Avatar billede detox Nybegynder
11. august 2003 - 21:25 #3
Ja, sådan kan du sikkert godt gøre det. Fugerer det?
Avatar billede Slettet bruger
11. august 2003 - 21:27 #4
jeg er lige ved at teste...
Avatar billede detox Nybegynder
11. august 2003 - 21:41 #5
Ellers kan dette måske gøre det:

//Udregn skaleringsforholdet på thumb, her skal 100 rettes til den ønskede bredde
$new_w = array(80, 249);
$sti = array('/images_product/small/', '/images_product/');
for ($i=0;$i<2;$i++) {
$division = $size[0] / $new_w[$i];
$new_h = $size[1] / $division;

//Lav et nyt billede så vi kan komme igang
$dst_img=ImageCreateTrueColor($new_w[$i],$new_h);

$src_img=ImageCreateFromJpeg($_FILES['fil']['tmp_name']);

//Smid noget indhold i, og resize
ImageCopyResized($dst_img,$src_img,0,0,0,0,$new_w[$i],$new_h,ImageSX($src_img),ImageSY($src_img));

//*nix-path til thumbfilens endelige placering
$filename = $_SERVER['DOCUMENT_ROOT'] . $sti[$i] . $img= "$productnr.$ext";

//Udfør det hele
ImageJpeg($dst_img, $filename);
}
Avatar billede Slettet bruger
11. august 2003 - 21:59 #6
Det virker bare super!! (jeg havde glemt at give adgang til "small"-mappen, derfor tog det lige lidt tid)

Giv mig lige et svar - så er points på vej til dig 'detox'
Avatar billede detox Nybegynder
11. august 2003 - 22:07 #7
Ok c",)
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