![]() |
jpg-format ändern
Kann ich mit PHP oder Javascript irgendwie das format eines jpg-bildes ändern?
z.B.: ein Bild mit 2048*1024 wird mit einem Dateiupload hochgeladen und ich will es zb.: im format 200*100 anzeigen und dabei auch die den Speicherbedarf verringern Danke im Voraus |
Re: jpg-format ändern
Ich benutze dafür eine Klasse, die ich mir erstellt habe und wiederverwenden kann. Es unterstütz das Hochladen von jpg,
png und gif-Dateien und das Speichern dieser im jpg- oder png-Format.
Code:
Der Aufruf der Klasse kann mit folgendem Code erfolgen:
<?PHP
/******************************************************************/ /* Autor: Markus Thomas */ /******************************************************************/ class imageupload { var $imageupload; var $orgname; var $filesize; var $mimetype; var $tmpname; var $typ; var $quality; function imageupload($file) { $this->tmpname=$file['tmp_name']; $this->orgname=$file['name']; $this->filesize=$file['size']; $this->mimetype=$file['type']; return $this->_is_valid(); } function _is_valid() { $typ=explode('/',$this->mimetype); if($typ[0]!='image') return false; else { $this->typ=exif_imagetype($this->tmpname); return true; } } function _moveto($newname, $dir, $size_x, $size_y, $typ) { $q=($this->quality>0 ? $this->quality : 85); //Qualitätsstufe festlegen 0 bis 100 switch($this->typ) { case 2: $im=imagecreatefromjpeg($this->tmpname); break; case 1: $im=imagecreatefromgif($this->tmpname); break; case 3: $im=imagecreatefrompng($this->tmpname); break; default: return false; exit(); break; } if(! $im) { return false; exit(); } $x=imagesx($im); $y=imagesy($im); $resize=1; if(($size_x/$x)<$resize && $size_x>0) { $resize=$size_x/$x; } if(($size_y/$y)<$resize && $size_y>0) { $resize=$size_y/$y; } // Nur für GD2-Unterstuetzung und PHP >=4.0.6 - Groessenaenderung mit Antialiasing $im_neu=imagecreatetruecolor(intval($x*$resize),intval($y*$resize)); imagecopyresampled($im_neu,$im,0,0,0,0,imagesx($im_neu),imagesy($im_neu),imagesx($im),imagesy($im)); /* bei gd Version < 2 oder PHP < 4.0.6 : $im_neu=imagecreate(intval($x*$resize),intval($y*$resize)); imagecopyresized($im_neu,$im,0,0,0,0,imagesx($im_neu),imagesy($im_neu),imagesx($im),imagesy($im)); */ if($typ=='') $typ='jpg'; switch($typ) { case 'jpg': $path="$dir/$newname.jpg"; imagejpeg($im_neu,$path, $q); break; case 'png': $path="$dir/$newname.png"; imagepng($im_neu, $path); break; default: $path=false; break; } @imagedestroy($im_neu); return $path; } function _setquality($q) { $this->quality=intval($q); //Qualitätsstufe setzen } } ?>
Code:
<?PHP
require("imageupload.class.php"); //Klasse laden if($myimage=new imageupload($_FILES['bild'])) then //in diesem Fall hat das Upload-Formularfeld den namen 'bild' { $myimage->_moveto('neuesbild','/home/bilder',800,600,'jpg'); /* Die Parameter der Funktion haben folgende Bedeutung: Name des Bildes auf Server, Verzeichnis auf Server, max. Breite, max. Hoehe, Bildformat auf Server('jpg' oder 'png') } ?> |
Re: jpg-format ändern
Danke!
Wirklich danke für diesen langen Code! werde die klasse jetzt ausprobieren! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz