/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
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

> 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

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408524
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste