Sponsor-Board.de

Normale Version: PHP Bilder beschneiden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Morgen,
ich komm mal wieder auch mit Google nicht weiter Wink

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
-

Twinker schrieb:
Morgen ,
auf der PHP.net Seite ist doch ein Beispiel.
Nur das du nicht mit Prozent arbeitetest sondern mit Pixelen.

PHP-Code:
<?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$image0000$new_width$new_height$width$height);

// Output
imagejpeg($image_pnull100);
?>


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

pushmessage
Dewnke das hier kann dir helfen:

PHP-Code:
<?php
/*
USAGE EXAMPLE:
File: createthumb.php
Example: <img src="createthumb.php?filename=photo.jpg&amp;width=100&amp;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'])), -1strlen(fileperms($_GET['filename']))) < 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$degrees0);
        }
    }
    
         
$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);



?>

Quelle ?

Wo wird da denn geschnitten (oder welche Parameter sind wichtig) ? Dafür leider etwas mager auskommentiert
Quelle: aus [Link: Registrierung erforderlich]
und zur nutzung einfach createthumb.php?filename=photo.jpg&amp;width=100&amp;height=100

Bild Pfad
Breite
Höhe
Url zur Datei

MFG Jkoan
Referenz-URLs