|
| lave et simpel thumbnail af billed Fra : jonathan |
Dato : 10-01-06 06:28 |
|
jeg det mest simpelt, har en uploadform, hvor jeg uploader et
billed, vil så gerne lave en mindre kopi, f.eks på 100 i bredde og gemme
det, hvordan gøres det mest simpelt, har googlet men det meste kan alt for
meget.
--
/Jonathan
www.3daner.dk Billig webhotel fra 5 kr/pr md
| |
Benny Andersen (10-01-2006)
| Kommentar Fra : Benny Andersen |
Dato : 10-01-06 12:05 |
|
On Tue, 10 Jan 2006 06:27:37 +0100, jonathan wrote:
> jeg det mest simpelt, har en uploadform, hvor jeg uploader et
> billed, vil så gerne lave en mindre kopi, f.eks på 100 i bredde og gemme
> det, hvordan gøres det mest simpelt, har googlet men det meste kan alt for
> meget.
Jeg er ikke den store php haj, men af interesse søgte jeg også lidt.
Det ser ud til at der skal være GD eller imagemagick understøttelse og det
kan man få et praj om vha. phpinfo()
Her er et GD eksempel på resize:
http://dk2.php.net/manual/en/function.imagecopyresized.php
Et spørgsmål (til alle): Bør man gemme til fil eller blot processere ved
hvert request? Hvad er den pæne måde?
--
Mvh
Benny Andersen
| |
jonathan (10-01-2006)
| Kommentar Fra : jonathan |
Dato : 10-01-06 16:22 |
|
> Jeg er ikke den store php haj, men af interesse søgte jeg også lidt.
>
> Det ser ud til at der skal være GD eller imagemagick understøttelse og det
> kan man få et praj om vha. phpinfo()
>
> Her er et GD eksempel på resize:
> http://dk2.php.net/manual/en/function.imagecopyresized.php
>
fandt følgende:
<?
$thumbsize=120;
$imgfile = "../billeder/1.jpg";
header('Content-type: image/jpeg');
list($width, $height) = getimagesize($imgfile);
$imgratio=$width/$height;
if ($imgratio>1){
$newwidth = $thumbsize;
$newheight = $thumbsize/$imgratio;}
else{
$newheight = $thumbsize;
$newwidth = $thumbsize*$imgratio;}
$thumb = ImageCreateTrueColor($newwidth,$newheight);
$source = imagecreatefromjpeg($imgfile);
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width,
$height);
imagejpeg($thumb,"../bilelder/1lille.jpg",100);
?>
Men for følgende fejl:
Fatal error:Allowed memory size of 8388608 bytes exhausted at (null):0
(tried to allocate 4608 bytes)
| |
Martin (10-01-2006)
| Kommentar Fra : Martin |
Dato : 10-01-06 17:25 |
|
jonathan wrote:
>>Jeg er ikke den store php haj, men af interesse søgte jeg også lidt.
>>
>>Det ser ud til at der skal være GD eller imagemagick understøttelse og det
>>kan man få et praj om vha. phpinfo()
>>
>>Her er et GD eksempel på resize:
>> http://dk2.php.net/manual/en/function.imagecopyresized.php
>>
>
> fandt følgende:
> <?
> $thumbsize=120;
> $imgfile = "../billeder/1.jpg";
> header('Content-type: image/jpeg');
> list($width, $height) = getimagesize($imgfile);
> $imgratio=$width/$height;
> if ($imgratio>1){
> $newwidth = $thumbsize;
> $newheight = $thumbsize/$imgratio;}
> else{
> $newheight = $thumbsize;
> $newwidth = $thumbsize*$imgratio;}
> $thumb = ImageCreateTrueColor($newwidth,$newheight);
> $source = imagecreatefromjpeg($imgfile);
> imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width,
> $height);
> imagejpeg($thumb,"../bilelder/1lille.jpg",100);
> ?>
>
> Men for følgende fejl:
> Fatal error:Allowed memory size of 8388608 bytes exhausted at (null):0
> (tried to allocate 4608 bytes)
Du kan prøve at kigge på følgende:
< http://phpclasses.phpwiz.dk/browse/package/1450.html>
Der er iøvrigt en fandens masse gode klasser derinde :)
| |
Frederik Dam Sunne (10-01-2006)
| Kommentar Fra : Frederik Dam Sunne |
Dato : 10-01-06 21:35 |
|
jonathan wrote:
> Men for følgende fejl:
> Fatal error:Allowed memory size of 8388608 bytes exhausted at (null):0
> (tried to allocate 4608 bytes)
Kan det passe at det var et stort billedet du angav som input?
Anyways, prøv:
http://phpthumb.sourceforge.net/
Frederik
| |
jonathan (11-01-2006)
| Kommentar Fra : jonathan |
Dato : 11-01-06 02:50 |
|
>> Men for følgende fejl:
>> Fatal error:Allowed memory size of 8388608 bytes exhausted at (null):0
>> (tried to allocate 4608 bytes)
>
> Kan det passe at det var et stort billedet du angav som input?
> Anyways, prøv:
> http://phpthumb.sourceforge.net/
>
jepper, var vel ca 1400*1200
----------------------------------------
Jeg beskyttes af den gratis SPAMfighter til privatbrugere.
Den har indtil videre sparet mig for at få 10242 spam-mails.
Betalende brugere får ikke denne besked i deres e-mails.
Hent gratis SPAMfighter her: www.spamfighter.dk
| |
Frederik Dam Sunne (11-01-2006)
| Kommentar Fra : Frederik Dam Sunne |
Dato : 11-01-06 10:20 |
|
jonathan wrote:
>>> Men for følgende fejl:
>>> Fatal error:Allowed memory size of 8388608 bytes exhausted at (null):0
>>> (tried to allocate 4608 bytes)
>> Kan det passe at det var et stort billedet du angav som input?
>> Anyways, prøv:
>> http://phpthumb.sourceforge.net/
>>
> jepper, var vel ca 1400*1200
Ok, men dit webhotel eller din lokale opsætning, har åbenbart en grænse
på ca. 8 mb - måske for at sikre at memoryleaks ikke får det hele til at
falde ned.
Så hvis dit billeder fylder over 8 mb, så var det derfor.
Mvh,
Frederik
| |
jonathan (11-01-2006)
| Kommentar Fra : jonathan |
Dato : 11-01-06 16:48 |
|
>> jepper, var vel ca 1400*1200
>
> Ok, men dit webhotel eller din lokale opsætning, har åbenbart en grænse
på
> ca. 8 mb - måske for at sikre at memoryleaks ikke får det hele til at
> falde ned.
> Så hvis dit billeder fylder over 8 mb, så var det derfor.
>
hmm, bilelder jeg har prøvet med, hvor jeg for den fejl er ikke så store,
højst 1 mb..
----------------------------------------
Jeg beskyttes af den gratis SPAMfighter til privatbrugere.
Den har indtil videre sparet mig for at få 10245 spam-mails.
Betalende brugere får ikke denne besked i deres e-mails.
Hent gratis SPAMfighter her: www.spamfighter.dk
| |
Peter Brodersen (11-01-2006)
| Kommentar Fra : Peter Brodersen |
Dato : 11-01-06 16:55 |
|
On Wed, 11 Jan 2006 10:20:14 +0100, Frederik Dam Sunne
<frederik_sunneFJERNMIG@hotmail.com> wrote:
>Så hvis dit billeder fylder over 8 mb, så var det derfor.
Det er vel at mærke 8 MB i råt format. Billedet skal "pakkes ud", så
et billede på 1400*1200 i 32bit (= 4 bytes pr. pixel) vil fylde
1400*1200*4 bytes = ~6,4MB.
Hvis der så samtidig skal dannes en kopi til at beregne en thumbnail
derudfra, så ryger man hurtigt et godt stykke over.
--
- Peter Brodersen
Find dig selv: http://map.ter.dk/
| |
jonathan (11-01-2006)
| Kommentar Fra : jonathan |
Dato : 11-01-06 17:08 |
|
>>Så hvis dit billeder fylder over 8 mb, så var det derfor.
>
> Det er vel at mærke 8 MB i råt format. Billedet skal "pakkes ud", så
> et billede på 1400*1200 i 32bit (= 4 bytes pr. pixel) vil fylde
> 1400*1200*4 bytes = ~6,4MB.
>
> Hvis der så samtidig skal dannes en kopi til at beregne en thumbnail
> derudfra, så ryger man hurtigt et godt stykke over.
takker for forklaringen, så blev jeg det klogere.
----------------------------------------
Jeg beskyttes af den gratis SPAMfighter til privatbrugere.
Den har indtil videre sparet mig for at få 10245 spam-mails.
Betalende brugere får ikke denne besked i deres e-mails.
Hent gratis SPAMfighter her: www.spamfighter.dk
| |
Martin (10-01-2006)
| Kommentar Fra : Martin |
Dato : 10-01-06 17:27 |
|
Benny Andersen wrote:
> On Tue, 10 Jan 2006 06:27:37 +0100, jonathan wrote:
>
>
>> jeg det mest simpelt, har en uploadform, hvor jeg uploader et
>>billed, vil så gerne lave en mindre kopi, f.eks på 100 i bredde og gemme
>>det, hvordan gøres det mest simpelt, har googlet men det meste kan alt for
>>meget.
>
>
> Jeg er ikke den store php haj, men af interesse søgte jeg også lidt.
>
> Det ser ud til at der skal være GD eller imagemagick understøttelse og det
> kan man få et praj om vha. phpinfo()
>
> Her er et GD eksempel på resize:
> http://dk2.php.net/manual/en/function.imagecopyresized.php
>
> Et spørgsmål (til alle): Bør man gemme til fil eller blot processere ved
> hvert request? Hvad er den pæne måde?
Du bør gemme det som en billedfil på serveren, for det er en rimelig
belastende process for serveren at lege med billeder.
Selvfølgelig opdager man det aldrig når man sidder alene på sin maskine
og roder.
Men tænk på hvis 100 går igang på samme tid, så tager det tid :D
| |
|
|