Geavanceerd thumbnail probleem
Met de class van Boaz, en menig andere tools.. (www.asido.info (best leuk pakket btw))
Ik dacht hier kan iemand mij vast uit de brand helpen...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
if(move_uploaded_file($_FILES['afbeelding']['tmp_name'], $imagePath)) {
list($src_width, $src_height) = getimagesize($imagePath);
if($src_width > $src_height) {
// vanuit de breedte
$dst_width = $maxDimension;
$dst_height = $height / $maxDimension;
}
else {
// vanuit de hoogte
$dst_height = $maxDimension;
$dst_width = $src_width / $maxDimension;
}
if(imagecopyresampled($thumbPath, $imagePath, 0, 0, 0, 0, intval($dst_width), intval($dst_height), intval($src_width), intval($src_height))) {
// return true en headeren enzo!
?>
if(move_uploaded_file($_FILES['afbeelding']['tmp_name'], $imagePath)) {
list($src_width, $src_height) = getimagesize($imagePath);
if($src_width > $src_height) {
// vanuit de breedte
$dst_width = $maxDimension;
$dst_height = $height / $maxDimension;
}
else {
// vanuit de hoogte
$dst_height = $maxDimension;
$dst_width = $src_width / $maxDimension;
}
if(imagecopyresampled($thumbPath, $imagePath, 0, 0, 0, 0, intval($dst_width), intval($dst_height), intval($src_width), intval($src_height))) {
// return true en headeren enzo!
?>
Alvast bedankt..
Noot: uploaden en verplaatsen gaat goed. Dus daar kan het niet aan liggen
Gewijzigd op 01/01/1970 01:00:00 door Jason de Ridder
en wat wil er precies niet dan...
hier even hoe ik het opgelost heb.
Kijk anders Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
function thumbnail($map,$thumblocatie,$bestandsnaam,$breedte,$hoogte)
{
list($breedte_origineel, $hoogte_origineel, $type) = getimagesize($map.$bestandsnaam);
//We weten de breedte/hoogte van een afbeelding, we weten ook hoe groot ze moeten worden en gaan dus lekker rekenen!
if (($breedte_origineel < $hoogte_origineel) && ($breedte > $hoogte)) {
$breedte = ($hoogte / $hoogte_origineel) * $breedte_origineel;
}else{
$hoogte = ($breedte / $breedte_origineel) * $hoogte_origineel;
}
//Maak een nieuwe afbeelding aan met de juiste breedte en hoogte, openen de originele en gebruik de functie imagecopyresampled om daar een mooie afbeelding van te maken.
$afbeelding = imagecreatetruecolor($breedte, $hoogte);
switch ($type)
{
case 1:
//gif
$afbeelding_origineel = imagecreatefromgif($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagegif($afbeelding, $map.$thumblocatie.$bestandsnaam);
break;
case 2:
//jpg
$afbeelding_origineel = imagecreatefromjpeg($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagejpeg($afbeelding, $map.$thumblocatie.$bestandsnaam,80);
break;
case 3:
//png
$afbeelding_origineel = imagecreatefrompng($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagepng($afbeelding, $map.$thumblocatie.$bestandsnaam);
break;
}
}
?>
function thumbnail($map,$thumblocatie,$bestandsnaam,$breedte,$hoogte)
{
list($breedte_origineel, $hoogte_origineel, $type) = getimagesize($map.$bestandsnaam);
//We weten de breedte/hoogte van een afbeelding, we weten ook hoe groot ze moeten worden en gaan dus lekker rekenen!
if (($breedte_origineel < $hoogte_origineel) && ($breedte > $hoogte)) {
$breedte = ($hoogte / $hoogte_origineel) * $breedte_origineel;
}else{
$hoogte = ($breedte / $breedte_origineel) * $hoogte_origineel;
}
//Maak een nieuwe afbeelding aan met de juiste breedte en hoogte, openen de originele en gebruik de functie imagecopyresampled om daar een mooie afbeelding van te maken.
$afbeelding = imagecreatetruecolor($breedte, $hoogte);
switch ($type)
{
case 1:
//gif
$afbeelding_origineel = imagecreatefromgif($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagegif($afbeelding, $map.$thumblocatie.$bestandsnaam);
break;
case 2:
//jpg
$afbeelding_origineel = imagecreatefromjpeg($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagejpeg($afbeelding, $map.$thumblocatie.$bestandsnaam,80);
break;
case 3:
//png
$afbeelding_origineel = imagecreatefrompng($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagepng($afbeelding, $map.$thumblocatie.$bestandsnaam);
break;
}
}
?>
Verkleinen en op de plek opslaan waar ik wil... In ieder geval dat laatste :)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
function thumbnail($imageLoc, $thumblocatie, $breedte, $hoogte)
{
list($breedte_origineel, $hoogte_origineel, $type) = getimagesize($imageLoc);
//We weten de breedte/hoogte van een afbeelding, we weten ook hoe groot ze moeten worden en gaan dus lekker rekenen!
if (($breedte_origineel < $hoogte_origineel) && ($breedte > $hoogte)) {
$breedte = ($hoogte / $hoogte_origineel) * $breedte_origineel;
}else{
$hoogte = ($breedte / $breedte_origineel) * $hoogte_origineel;
}
//Maak een nieuwe afbeelding aan met de juiste breedte en hoogte, openen de originele en gebruik de functie imagecopyresampled om daar een mooie afbeelding van te maken.
if(!$afbeelding = imagecreatetruecolor($breedte, $hoogte)) {
return false;
}
switch ($type)
{
case 1:
//gif
$afbeelding_origineel = imagecreatefromgif($imageLoc);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
if(!imagegif($afbeelding, $thumblocatie)) {
return false;
}
break;
case 2:
//jpg
$afbeelding_origineel = imagecreatefromjpeg($imageLoc);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
if(!imagejpeg($afbeelding, $thumblocatie, 100)) {
return false;
}
break;
case 3:
//png
$afbeelding_origineel = imagecreatefrompng($imageLoc);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
if(!imagepng($afbeelding, $thumblocatie)) {
return false;
}
break;
}
return true;
}
?>
function thumbnail($imageLoc, $thumblocatie, $breedte, $hoogte)
{
list($breedte_origineel, $hoogte_origineel, $type) = getimagesize($imageLoc);
//We weten de breedte/hoogte van een afbeelding, we weten ook hoe groot ze moeten worden en gaan dus lekker rekenen!
if (($breedte_origineel < $hoogte_origineel) && ($breedte > $hoogte)) {
$breedte = ($hoogte / $hoogte_origineel) * $breedte_origineel;
}else{
$hoogte = ($breedte / $breedte_origineel) * $hoogte_origineel;
}
//Maak een nieuwe afbeelding aan met de juiste breedte en hoogte, openen de originele en gebruik de functie imagecopyresampled om daar een mooie afbeelding van te maken.
if(!$afbeelding = imagecreatetruecolor($breedte, $hoogte)) {
return false;
}
switch ($type)
{
case 1:
//gif
$afbeelding_origineel = imagecreatefromgif($imageLoc);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
if(!imagegif($afbeelding, $thumblocatie)) {
return false;
}
break;
case 2:
//jpg
$afbeelding_origineel = imagecreatefromjpeg($imageLoc);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
if(!imagejpeg($afbeelding, $thumblocatie, 100)) {
return false;
}
break;
case 3:
//png
$afbeelding_origineel = imagecreatefrompng($imageLoc);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
if(!imagepng($afbeelding, $thumblocatie)) {
return false;
}
break;
}
return true;
}
?>
Edit:
Zou het kunnen liggen aan dat ik dit soort bestandsnamen gebruik? (a2ddd4a9453c9d1bfeb905804cd5fc8c.jpg)
Zou het kunnen liggen aan dat ik dit soort bestandsnamen gebruik? (a2ddd4a9453c9d1bfeb905804cd5fc8c.jpg)
Gewijzigd op 01/01/1970 01:00:00 door Jason de Ridder
Ik doe dat ook met een (zelfgemaakte) image class. Geef maar een seintje als je een kopietje wilt.
schiet mij maar lek...
Misschien is het makkelijk, maar ik heb de tmpfile op het moment van creeeren nog tot mijn beschikking...
Euh, "hij werkt niet". Wat bedoel je precies met "hij werkt niet"? Geen foutmeldingen? Geen data?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?
//zelf ff rotzooien met de paden
function thumb_make($thumb,$file_short){
$delen = explode('.',$thumb);
// Set a maximum height and width
$breedte = 50;
$hoogte = 50;
// Get new dimensions
list($breedte_org, $hoogte_org) = getimagesize($thumb);
if ($breedte && ($breedte_org < $hoogte_org)) {
$breedte = ($hoogte / $hoogte_org) * $breedte_org;
} else {
$hoogte = ($breedte / $breedte_org) * $hoogte_org;
}
// Resample
$img_p = imagecreatetruecolor($breedte, $hoogte);
if($delen[1]=='jpg' || $delen[1]=='jpeg'){
$img = imagecreatefromjpeg($thumb);
}elseif($delen[1]=='png'){
$img = imagecreatefrompng($thumb);
}elseif($delen[1]=='gif'){
$img = imagecreatefromgif($thumb);
}
imagecopyresampled($img_p, $img, 0, 0, 0, 0, $breedte, $hoogte, $breedte_org, $hoogte_org);
// Output
imagejpeg($img_p, $_GET[sub1_loc].'/'.$_GET[sub2_loc].'_thumbs/'.$file_short , 100);
?>
//zelf ff rotzooien met de paden
function thumb_make($thumb,$file_short){
$delen = explode('.',$thumb);
// Set a maximum height and width
$breedte = 50;
$hoogte = 50;
// Get new dimensions
list($breedte_org, $hoogte_org) = getimagesize($thumb);
if ($breedte && ($breedte_org < $hoogte_org)) {
$breedte = ($hoogte / $hoogte_org) * $breedte_org;
} else {
$hoogte = ($breedte / $breedte_org) * $hoogte_org;
}
// Resample
$img_p = imagecreatetruecolor($breedte, $hoogte);
if($delen[1]=='jpg' || $delen[1]=='jpeg'){
$img = imagecreatefromjpeg($thumb);
}elseif($delen[1]=='png'){
$img = imagecreatefrompng($thumb);
}elseif($delen[1]=='gif'){
$img = imagecreatefromgif($thumb);
}
imagecopyresampled($img_p, $img, 0, 0, 0, 0, $breedte, $hoogte, $breedte_org, $hoogte_org);
// Output
imagejpeg($img_p, $_GET[sub1_loc].'/'.$_GET[sub2_loc].'_thumbs/'.$file_short , 100);
?>
Gewijzigd op 01/01/1970 01:00:00 door bart van der veen
Nee hij werkt niet, geen foutmeldingen (op mijn eigen foutmelding na), en ook geen data.
Dank je Bart, maar dit soort scripts heb ik allemaal al eens geprobeerd, ik denk dat het probleem dichter bij de 'kern' ligt.
Ik heb wel gewoon netjes GD library geinstalleerd.
Wat ik wel bij sommige scripts krijg is de output van imagejpeg, dus ik denk dat het probleem ligt bij het wegschrijven...
Heb je al eens geprobeerd (bijvoorbeeld met mijn class) om het plaatje gewoon weer te geven ipv op te slaan? (op die manier weet je zekerder waar het probleem zit, ik denk namelijk dat je dingen moet gaan uitsluiten...)
Ik had je class een beetje verkracht. En return true; en return false; terug laten geven. Maar daar moet het probleem niet liggen neem ik aan?
Dan lijkt het me idd in het opslaan te zitten, waarschijnlijk een overbodige vraag, maar 100% zeker dat je de juiste rechten hebt? (A)
Ik zit gewoon op een windows bak, lokaal.
Maar ik heb het met chmod geprobeerd en op een externe host.
BUMP (A)