Grille
Erfahrenes Mitglied
Hallo,
Ich habe hier Funktionen, die in einer "Images"-class stehen und Bilder zurechtschneiden und verkleinern können soll.
die "private" Funktionen sollen bestimmte Daten vorbereiten, "publicstaticfunction create_imagefile" soll dann das Bild erstellen. Leider schaffe ich es aber nicht, dass das Image "$oNewImage" die Hintergrundfarbe "ffffff" hat.
Wenn ich ein Bild zu sehr verkleiner und in "$oNewImage" einfüge, dann ist der Hintergrund immer schwarz.
Das Ergebnis sieht dann so aus:
http://gvb.schauart.de/images/report/view_a/ddb90ba0faf3cbe33471182f19c4a132.jpg
Könnt ihr mir bitte helfen dem Bild eine Hintergrundfarbe zu verpassen?
Ich habe hier Funktionen, die in einer "Images"-class stehen und Bilder zurechtschneiden und verkleinern können soll.
die "private" Funktionen sollen bestimmte Daten vorbereiten, "publicstaticfunction create_imagefile" soll dann das Bild erstellen. Leider schaffe ich es aber nicht, dass das Image "$oNewImage" die Hintergrundfarbe "ffffff" hat.
Wenn ich ein Bild zu sehr verkleiner und in "$oNewImage" einfüge, dann ist der Hintergrund immer schwarz.
Das Ergebnis sieht dann so aus:
http://gvb.schauart.de/images/report/view_a/ddb90ba0faf3cbe33471182f19c4a132.jpg
Könnt ihr mir bitte helfen dem Bild eine Hintergrundfarbe zu verpassen?
PHP:
private function random_image_name($sSavePfad){
srand((double)microtime()*1000000); // for older than version 4.2.0 of PHP
do{
$sNewFilename = md5(uniqid(rand())) .".jpg";
} while( file_exists($sSavePfad.$sNewFilename));
return $sNewFilename;
$GLOBALS[SYSMES] .= '$sNewFilename: '.$sNewFilename.'<br>';
}
/**
* private function get the image-height
*
* @access private
* @param $oImage
* @return $iImageHeight
*/
private function imageheight($oImage){
$aImagesource = getimagesize ($oImage);
return $iImageHeight = $aImagesource[1];
$GLOBALS[SYSMES] .= '$iImageHeight: '.$iImageHeight.'<br>';
}
/**
* private function get the image-width
*
* @access private
* @param $oImage
* @return $iImageWidth
*/
private function imagewidth($oImage){
$aImagesource = getimagesize ($oImage);
return $iImageWidth = $aImagesource[0];
$GLOBALS[SYSMES] .= '$iImageWidth: '.$iImageWidth.'<br>';
}
/**
* private function get the image-objekt
*
* @access private
* @param $oImage
* @return $oSourceImage
*/
private function imageObjekt($oImage){
$aImagedata = getimagesize ($oImage);
switch ($aImagedata[2]){
case '1':
return $oSourceImage = imageCreateFromgif($oImage);
break;
case '2':
return $oSourceImage = imageCreateFromJPEG($oImage);
break;
case '3':
return $oSourceImage = imageCreateFrompng($oImage);
break;
default:
return false;
}
$GLOBALS[SYSMES] .= '$oSourceImage: '.$oSourceImage.'<br>';
}
/**
* static function to create a imagefile
*
* @access public
* @param $oImage (gesendet von "$_FILES"), $sSavePfad (Speicherstelle des neuen Bildes), $iSollhoehe(Neubildhöhe), $iSollbreite (Neubildbreite), $iZoomfaktor (Verkleinerungsfaktor)
* @return an new image & true or false
*/
public static function create_imagefile($oImage, $sSavePfad, $iSollhoehe, $iSollbreite, $iZoomfaktor){
$sNewBildName = self::random_image_name($sSavePfad);
$oNewImage = ImageCreateTrueColor($iSollhoehe, $iSollbreite);
$oBGcolor = ImageColorAllocate ($oNewImage, 255, 255, 255);
$oSourceImage = self::imageObjekt($oImage);
$x_neu_bild = 0;
$y_neu_bild = 0;
$hoehe_neu_bild = $iSollhoehe;
$breite_neu_bild = $iSollbreite;
$x_alt_bild = ( self::imagewidth($oImage) - $iSollbreite )/2;
$y_alt_bild = ( self::imageheight($oImage) -$iSollhoehe)/2;
$hoehe_alt_bild = $iSollhoehe*$iZoomfaktor;
$breite_alt_bild = $iSollbreite*$iZoomfaktor;
ImageCopyResized($oNewImage, $oSourceImage, $x_neu_bild, $y_neu_bild, $x_alt_bild, $y_alt_bild, $breite_neu_bild, $hoehe_neu_bild, $breite_alt_bild, $hoehe_alt_bild);
imagejpeg($oNewImage, $sSavePfad.$sNewBildName, 100);
ImageDestroy($oNewImage);
@chmod($sSavePfad.$sNewBildName, 0777);
return true;
}