PHP Bilder beschneiden
|
Verfasser |
Nachricht |
|
Beiträge: 3.413
Bewertung: 33
Registriert seit: Oct 2010
Status:
offline
|
PHP Bilder beschneiden
Guten Morgen,
ich komm mal wieder auch mit Google nicht weiter 
Ich verkleinere Bilder auf eine einheitliche Breite und möchte nun auch eine feste Höhe erzwingen, also nach 150px den Rest zb. unten abschneiden .. wie mache ich das ?
Möglich mit folgender Funktion ? : [Link: Registrierung erforderlich]
Danke für jeden Denkanstoss und jede Hilfe!
PS: Möchte schon die GD Library nutzen, nicht imagemagick o.ä.
mfg Aaron
Portfolio: [Link: Registrierung erforderlich]
Projekte
[Link: Registrierung erforderlich]
[Link: Registrierung erforderlich]
|
|
25.01.2013 06:00 |
|
|
Beiträge: 245
Registriert seit: Sep 2010
Status:
offline
|
RE: PHP Bilder beschneiden
|
|
25.01.2013 07:31 |
|
|
Beiträge: 3.413
Bewertung: 33
Registriert seit: Oct 2010
Status:
offline
|
RE: PHP Bilder beschneiden
Morgen ,
auf der PHP.net Seite ist doch ein Beispiel.
Nur das du nicht mit Prozent arbeitetest sondern mit Pixelen.
<?php // The file $filename = 'test.jpg'; $percent = 0.5;
// Content type header('Content-Type: image/jpeg');
// Get new dimensions list($width, $height) = getimagesize($filename); $new_width = $width * $percent; $new_height = $height * $percent;
// Resample $image_p = imagecreatetruecolor($new_width, $new_height); $image = imagecreatefromjpeg($filename); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// Output imagejpeg($image_p, null, 100); ?>
Morgen, da wird das Bild aber verkleinert, oder ?
Das proportionale Verkleinern geht ja schon, wie geschrieben, nur möchte ich jetzt den Rest abschneiden, damit die Höhe auch einheitlich ist, ohne das sich was verzerrt
Portfolio: [Link: Registrierung erforderlich]
Projekte
[Link: Registrierung erforderlich]
[Link: Registrierung erforderlich]
|
|
25.01.2013 08:13 |
|
|
- # PUSH # - 29.01.2013 - 16:22 Uhr - |
|
Beiträge: 260
Bewertung: 23
Registriert seit: Apr 2012
Status:
offline
|
RE: PHP Bilder beschneiden
Dewnke das hier kann dir helfen:
<?php /* USAGE EXAMPLE: File: createthumb.php Example: <img src="createthumb.php?filename=photo.jpg&width=100&height=100"> */ // error_reporting(E_ALL);
if (preg_match("/.jpg$|.jpeg$/i", $_GET['filename'])) header('Content-type: image/jpeg'); if (preg_match("/.gif$/i", $_GET['filename'])) header('Content-type: image/gif'); if (preg_match("/.png$/i", $_GET['filename'])) header('Content-type: image/png');
// Display error image if file isn't found if (!is_file($_GET['filename'])) { header('Content-type: image/jpeg'); $errorimage = ImageCreateFromJPEG('images/questionmark.jpg'); ImageJPEG($errorimage,null,90); } // Display error image if file exists, but can't be opened if (substr(decoct(fileperms($_GET['filename'])), -1, strlen(fileperms($_GET['filename']))) < 4 OR substr(decoct(fileperms($_GET['filename'])), -3,1) < 4) { header('Content-type: image/jpeg'); $errorimage = ImageCreateFromJPEG('images/cannotopen.jpg'); ImageJPEG($errorimage,null,90); } // Define variables $target = ""; $xoord = 0; $yoord = 0;
if ($_GET['size'] == "") $_GET['size'] = 120; // $imgsize = GetImageSize($_GET['filename']); $width = $imgsize[0]; $height = $imgsize[1]; if ($width > $height) { // If the width is greater than the height it’s a horizontal picture $xoord = ceil(($width-$height)/2); $width = $height; // Then we read a square frame that equals the width } else { $yoord = ceil(($height-$width)/2); $height = $width; }
// Rotate JPG pictures if (preg_match("/.jpg$|.jpeg$/i", $_GET['filename'])) { if (function_exists('exif_read_data') && function_exists('imagerotate')) { $exif = exif_read_data($_GET['filename']); $ort = $exif['IFD0']['Orientation']; $degrees = 0; switch($ort) { case 6: // 90 rotate right $degrees = 270; break; case 8: // 90 rotate left $degrees = 90; break; } if ($degrees != 0) $target = imagerotate($target, $degrees, 0); } } $target = ImageCreatetruecolor($_GET['size'],$_GET['size']); if (preg_match("/.jpg$/i", $_GET['filename'])) $source = ImageCreateFromJPEG($_GET['filename']); if (preg_match("/.gif$/i", $_GET['filename'])) $source = ImageCreateFromGIF($_GET['filename']); if (preg_match("/.png$/i", $_GET['filename'])) $source = ImageCreateFromPNG($_GET['filename']); imagecopyresampled($target,$source,0,0,$xoord,$yoord,$_GET['size'],$_GET['size'],$width,$height); imagedestroy($source);
if (preg_match("/.jpg$/i", $_GET['filename'])) ImageJPEG($target,null,90); if (preg_match("/.gif$/i", $_GET['filename'])) ImageGIF($target,null,90); if (preg_match("/.png$/i", $_GET['filename'])) ImageJPEG($target,null,90); // Using ImageJPEG on purpose imagedestroy($target);
?>
[Link: Registrierung erforderlich]
[Link: Registrierung erforderlich]
|
|
29.01.2013 16:54 |
|
|
Beiträge: 3.413
Bewertung: 33
Registriert seit: Oct 2010
Status:
offline
|
|
29.01.2013 16:58 |
|
|
Beiträge: 260
Bewertung: 23
Registriert seit: Apr 2012
Status:
offline
|
|
29.01.2013 17:06 |
|
|