|
| Ændre størelse på gif animation. Fra : Run |
Dato : 08-02-05 15:23 |
|
Hej NG,
Jeg er igang med at lave en funktion der skal kunne ændre størrelsen på
følgende billede formater; jpg, png og gif. Dette virker også
upåklageligt men jeg vil også gerne have muligheden for at ændre
størrelsen på en gif animation. Er det muligt? Og hvordan?
/run
Herunder er min resize funktion.
function resizeImage($sourceFile, $targetFile, $maxWidth, $maxHeight){
list($sourceImageWidth, $sourceImageHeight, $fileType) =
getimagesize($sourceFile);
if ($sourceImageWidth > $maxWidth){
$delta = $maxWidth/$sourceImageWidth;
if (($sourceImageHeight * $delta) > $maxHeight) $delta =
$maxHeight/$sourceImageHeight;
} elseif ($sourceImageHeight > $maxHeight) $delta =
$maxHeight/$sourceImageHeight;
if (isset($delta)){
$destImageWidth = round($delta * $sourceImageWidth);
$destImageHeight = round($delta * $sourceImageHeight);
} else {
$destImageWidth = $sourceImageWidth;
$destImageHeight = $sourceImageHeight;
}
$targetImage = imagecreatetruecolor($destImageWidth, $destImageHeight);
switch($fileType){
case ($fileType == 1):
$sourceImage = imagecreatefromgif($sourceFile);
imagecopyresampled($targetImage, $sourceImage, 0,0,0,0,
$destImageWidth, $destImageHeight, $sourceImageWidth, $sourceImageHeight);
imagegif($targetImage,$targetFile,100);
break;
case ($fileType == 2):
$sourceImage = imagecreatefromjpeg($sourceFile);
imagecopyresampled($targetImage, $sourceImage, 0,0,0,0,
$destImageWidth, $destImageHeight, $sourceImageWidth, $sourceImageHeight);
imagejpeg($targetImage,$targetFile,100);
break;
case ($fileType == 3):
$sourceImage = imagecreatefrompng($sourceFile);
imagecopyresampled($targetImage, $sourceImage, 0,0,0,0,
$destImageWidth, $destImageHeight, $sourceImageWidth, $sourceImageHeight);
imagepng($targetImage,$targetFile,100);
break;
}
}
| |
Dan Storm (08-02-2005)
| Kommentar Fra : Dan Storm |
Dato : 08-02-05 17:33 |
|
>Jeg er igang med at lave en funktion der skal kunne ændre størrelsen
på følgende billede formater; jpg, png og gif. Dette virker også
upåklageligt men jeg vil også gerne have muligheden for at ændre
størrelsen på en gif animation. Er det muligt? Og hvordan?
Nej. Det svarer til at du tager din animation ind i f.eks. PSP, og
tilpasser størrelsen. Så sker der det at animationens første frame
bliver gemt som et nyt GIF billede.
Vær opmærksom på at hvis du vil benytte dig af GDlibs GIF funktioner
skal GD være yngre end version 2, da GIF er et trademark af et
amerikansk firma og dermed ikke følger med nyere versioner af GDlib.
--
Dan Storm
http://err0r.dk
storm@err0r.dk
PGP Public key på http://err0r.dk/pubring.pkr
>>> husk på; en ekspert er en person der har begået alle fejl mulige
inden for et bestemt område
| |
Geert Lund (08-02-2005)
| Kommentar Fra : Geert Lund |
Dato : 08-02-05 17:55 |
|
Dan Storm wrote:
> Vær opmærksom på at hvis du vil benytte dig af GDlibs GIF funktioner
> skal GD være yngre end version 2, da GIF er et trademark af et
> amerikansk firma og dermed ikke følger med nyere versioner af GDlib.
Ikke at jeg er sikker i min sag, da jeg ikke selv bruger det, men er GIF
support ikke tilbage i GDLib? Eller rettere - jeg ved at det er tilbage
[fra version 2.0.28/21-07-2004], spørgsmålet er mere om ikke også PHP
dermed understøtter GIF hvis man bruger en ny version af GDLib?
--
Med venlig hilsen
Geert Lund
| |
Morten Fangel (08-02-2005)
| Kommentar Fra : Morten Fangel |
Dato : 08-02-05 18:00 |
|
Geert Lund wrote:
> Dan Storm wrote:
>
>> Vær opmærksom på at hvis du vil benytte dig af GDlibs GIF funktioner
>> skal GD være yngre end version 2, da GIF er et trademark af et
>> amerikansk firma og dermed ikke følger med nyere versioner af GDlib.
>
>
> Ikke at jeg er sikker i min sag, da jeg ikke selv bruger det, men er GIF
> support ikke tilbage i GDLib? Eller rettere - jeg ved at det er tilbage
> [fra version 2.0.28/21-07-2004], spørgsmålet er mere om ikke også PHP
> dermed understøtter GIF hvis man bruger en ny version af GDLib?
>
Gif-support er tilbage i Read-Only mode... dvs at du kan indlæse et
Gif-billede, resize det og gemme det igen som et PNG-billede..
http://burnallgifs.org/archives/
Patentet udløb dog muligvis i 2004, så måske vi ser Gif-read-support
tilbage i GDlib på et tidspunkt - hvem ved?
Fangel
| |
Ulrik Nielsen (08-02-2005)
| Kommentar Fra : Ulrik Nielsen |
Dato : 08-02-05 18:13 |
|
Morten Fangel wrote:
> Gif-support er tilbage i Read-Only mode... dvs at du kan indlæse et
> Gif-billede, resize det og gemme det igen som et PNG-billede..
>
> http://burnallgifs.org/archives/
>
> Patentet udløb dog muligvis i 2004, så måske vi ser Gif-read-support
> tilbage i GDlib på et tidspunkt - hvem ved?
hmm, der er nu altså rw understøttelse i gif igen, patentet er udløbet
og en ny version af gdlib m. gif support er frigivet...
--
ulrik nielsen |
-----------------+---------------------------------------------------
quote or the day | routing problems on the neural net
from bofh | http://www.cs.wisc.edu/~ballard/bofh/
| |
Geert Lund (08-02-2005)
| Kommentar Fra : Geert Lund |
Dato : 08-02-05 18:51 |
|
Morten Fangel wrote:
> Gif-support er tilbage i Read-Only mode... dvs at du kan indlæse et
> Gif-billede, resize det og gemme det igen som et PNG-billede..
Og lige en note mere
Kan faktisk se på min egen PHP Build med GD 2.0.28 support at der er
både Read og Create GIF support enablet, så jeg tror bestemt ikke det er
noget problem :)
--
Med venlig hilsen
Geert Lund
| |
Run (08-02-2005)
| Kommentar Fra : Run |
Dato : 08-02-05 20:39 |
|
Dan Storm wrote:
> >Jeg er igang med at lave en funktion der skal kunne ændre størrelsen
> på følgende billede formater; jpg, png og gif. Dette virker også
> upåklageligt men jeg vil også gerne have muligheden for at ændre
> størrelsen på en gif animation. Er det muligt? Og hvordan?
>
> Nej. Det svarer til at du tager din animation ind i f.eks. PSP, og
> tilpasser størrelsen. Så sker der det at animationens første frame
> bliver gemt som et nyt GIF billede.
>
> Vær opmærksom på at hvis du vil benytte dig af GDlibs GIF funktioner
> skal GD være yngre end version 2, da GIF er et trademark af et
> amerikansk firma og dermed ikke følger med nyere versioner af GDlib.
Tak for hjælpen. Men er der så en funktion der kan kontroller om en gif
fil er en animation eller et billede?
/run
| |
Dan Storm (08-02-2005)
| Kommentar Fra : Dan Storm |
Dato : 08-02-05 23:18 |
|
Heller ikke. Det må være noget du skal overlade til gætteri i form af
filens størrele så. Jo større filen er i kb, eventuelt flere frames.
Sammenlign det eventuelt med width og height af billedet.
--
Dan Storm
http://err0r.dk
storm@err0r.dk
PGP Public key på http://err0r.dk/pubring.pkr
>>> husk på; en ekspert er en person der har begået alle fejl mulige
inden for et bestemt område
| |
Thomas Lindgaard (09-02-2005)
| Kommentar Fra : Thomas Lindgaard |
Dato : 09-02-05 11:24 |
|
On Tue, 08 Feb 2005 23:17:46 +0100, Dan Storm wrote:
> Heller ikke. Det må være noget du skal overlade til gætteri i form af
> filens størrele så. Jo større filen er i kb, eventuelt flere frames.
> Sammenlign det eventuelt med width og height af billedet.
Kunne man ikke evt. gemme en kopi af billedet og sammenligne størrelsen
med originalen? - hvis de er samme størrelse, er det ikke en animation
ellers...
--
Mvh.
/Thomas
| |
Dan Storm (09-02-2005)
| Kommentar Fra : Dan Storm |
Dato : 09-02-05 15:39 |
|
Det er også en mulighed! Det handler om at lave en logisk sammenligning
af billederne!
--
Dan Storm
http://err0r.dk
storm@err0r.dk
PGP Public key på http://err0r.dk/pubring.pkr
>>> husk på; en ekspert er en person der har begået alle fejl mulige
inden for et bestemt område
| |
Run (10-02-2005)
| Kommentar Fra : Run |
Dato : 10-02-05 13:30 |
|
Dan Storm wrote:
> Det er også en mulighed! Det handler om at lave en logisk sammenligning
> af billederne!
Tak for svarene. Jeg må prøve mig lidt frem med de metoder i har givet
og bruge den jeg finder bedst.
Igen tak for hjælpen.
/run
| |
Allan Kok (11-02-2005)
| Kommentar Fra : Allan Kok |
Dato : 11-02-05 17:33 |
|
"Run" <newsrunnerrun@yahoo.com> skrev i en meddelelse
news:Yy8Od.98545$Vf.3872347@news000.worldonline.dk...
> Tak for hjælpen. Men er der så en funktion der kan kontroller om en gif
> fil er en animation eller et billede?
Man må kunne ud fra headeren i billedet se om det er en animation!
mvh
Allan
| |
Run (12-02-2005)
| Kommentar Fra : Run |
Dato : 12-02-05 01:13 |
|
Allan Kok wrote:
>
> Man må kunne ud fra headeren i billedet se om det er en animation!
>
> mvh
> Allan
>
>
Men hvordan gøres det?
/run
| |
Allan Kok (12-02-2005)
| Kommentar Fra : Allan Kok |
Dato : 12-02-05 12:34 |
|
"Run" <newsrunnerrun@yahoo.com> skrev i en meddelelse
news:XRbPd.99345$Vf.3880548@news000.worldonline.dk...
> Allan Kok wrote:
>>
>> Man må kunne ud fra headeren i billedet se om det er en animation!
>>
>> mvh
>> Allan
>
> Men hvordan gøres det?
>
Det kan jeg ikke svare på, men det må kunne ses i standarten!
Men på GD Graphics Library ( http://www.boutell.com/gd/) står følgende:
11/01/04: gd 2.0.32 has been released. gd 2.0.29 added animated GIF writing
support, fontconfig support for easily specifying freetype font names, open
polygon drawing, and important fixes for theoretically exploitable integer
overflows in memory allocation code in previous releases. 2.0.30 corrected a
minor compilation problem when freetype is absent, and 2.0.31 corrected a
similar issue which prevented the Windows DLL version from being built.
2.0.32 corrected an issue when PNG is absent and also corrected a problem
with umlauts in truetype text output.
så GD må jo kunne håndere animerede giffer!
Allan
| |
|
|