CronJob-Service
bei SELFPHP mit ...
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden
13.10.2011, 11:28:54
Anfänger
Registriert seit: Apr 2004
Ort: Dresden
Beiträge: 53
Stark pixelige Bilder beim skalieren
Hallo,
ich benötige etwas Hilf bei einem Script für Bildskalierung.
Ich erhalte bei dem Script beim hochladen von Bildern manchmal stark pixelige Bilder, als ob er ein ganz kleines Bild auf 1024 Pixel rechnet, woran kann das liegen.
Ich bin kein Experte bei PHP.
Grüsse,Raul
PHP-Code:
//RESIZE -----------------------------------------------------
//WICHTIG innerhalb RESIZE muss $bildname1 die Zahl angepasst werden 1,2,3,4,5 etc.
if ( strrchr ( $bildname1 , '.' ) == '.gif' ||
strrchr ( $bildname1 , '.' ) == '.jpg' ||
strrchr ( $bildname1 , '.' ) == '.jpeg' ||
strrchr ( $bildname1 , '.' ) == '.png' )
{
// Orginalbild
$TNbild = $bildname1 ;
// Bilddaten feststellen
$size = getimagesize ( $PicPathIn . $TNbild );
$breite = $size [ 0 ];
$hoehe = $size [ 1 ];
$neueBreite = 1024 ; // <------------Pixel Breite
$neueHoehe = intval ( $hoehe * $neueBreite / $breite );
if( $size [ 2 ] == 1 ) {
// GIF
$altesBild = ImageCreateFromGIF ( $PicPathIn . $TNbild );
$neuesBild = ImageCreateTrueColor ( $neueBreite , $neueHoehe );
ImageCopyResized ( $neuesBild , $altesBild , 0 , 0 , 0 , 0 , $neueBreite , $neueHoehe , $breite , $hoehe );
ImageGIF ( $neuesBild , $PicPathOut . $TNbild );
}
if( $size [ 2 ] == 2 ) {
// JPG
$altesBild = ImageCreateFromJPEG ( $PicPathIn . $TNbild );
$neuesBild = ImageCreateTrueColor ( $neueBreite , $neueHoehe );
ImageCopyResized ( $neuesBild , $altesBild , 0 , 0 , 0 , 0 , $neueBreite , $neueHoehe , $breite , $hoehe );
ImageJPEG ( $neuesBild , $PicPathOut . $TNbild );
}
if( $size [ 2 ] == 3 ) {
// PNG
$altesBild = ImageCreateFromPNG ( $PicPathIn . $TNbild );
$neuesBild = ImageCreateTrueColor ( $neueBreite , $neueHoehe );
ImageCopyResized ( $neuesBild , $altesBild , 0 , 0 , 0 , 0 , $neueBreite , $neueHoehe , $breite , $hoehe );
ImagePNG ( $neuesBild , $PicPathOut . $TNbild );
}
}
//RESIZE END --------------------------------------------
Miniaturansicht angehängter Grafiken
13.10.2011, 17:18:41
SELFPHP Experte
Registriert seit: Jun 2008
Alter: 16
Beiträge: 2.269
AW: Stark pixelige Bilder beim skalieren
ImageCopyResampled() statt ImageCopyResized()
13.10.2011, 19:34:09
Anfänger
Registriert seit: Apr 2004
Ort: Dresden
Beiträge: 53
AW: Stark pixelige Bilder beim skalieren
Vielen Dank, ich habe das geändert und vor allem eine "ist größer als" Option eingebaut, sodass alle Bilder über 1024 Pixel erst skaliert werden.
Falls das mal für jemand Interessant sein sollte:
PHP-Code:
//RESIZE -----------------------------------------------------
//WICHTIG innerhalb RESIZE muss $bildname1 die Zahl angepasst werden 1,2,3,4,5 etc.
if ( strrchr ( $bildname1 , '.' ) == '.gif' ||
strrchr ( $bildname1 , '.' ) == '.jpg' ||
strrchr ( $bildname1 , '.' ) == '.jpeg' ||
strrchr ( $bildname1 , '.' ) == '.png' )
{
// Orginalbild
$TNbild = $bildname1 ;
// Bilddaten feststellen
$size = getimagesize ( $PicPathIn . $TNbild );
$breite = $size [ 0 ];
$hoehe = $size [ 1 ];
if( $breite > 1024 ) { // <------------ ab wieviel Pixel skaliert werden soll
$neueBreite = 1024 ; // <------------Pixel Breite
$neueHoehe = intval ( $hoehe * $neueBreite / $breite );
if( $size [ 2 ] == 1 ) {
// GIF
$altesBild = ImageCreateFromGIF ( $PicPathIn . $TNbild );
$neuesBild = ImageCreateTrueColor ( $neueBreite , $neueHoehe );
ImageCopyResampled ( $neuesBild , $altesBild , 0 , 0 , 0 , 0 , $neueBreite , $neueHoehe , $breite , $hoehe );
ImageGIF ( $neuesBild , $PicPathOut . $TNbild );
}
if( $size [ 2 ] == 2 ) {
// JPG
$altesBild = ImageCreateFromJPEG ( $PicPathIn . $TNbild );
$neuesBild = ImageCreateTrueColor ( $neueBreite , $neueHoehe );
ImageCopyResampled ( $neuesBild , $altesBild , 0 , 0 , 0 , 0 , $neueBreite , $neueHoehe , $breite , $hoehe );
ImageJPEG ( $neuesBild , $PicPathOut . $TNbild );
}
if( $size [ 2 ] == 3 ) {
// PNG
$altesBild = ImageCreateFromPNG ( $PicPathIn . $TNbild );
$neuesBild = ImageCreateTrueColor ( $neueBreite , $neueHoehe );
ImageCopyResampled ( $neuesBild , $altesBild , 0 , 0 , 0 , 0 , $neueBreite , $neueHoehe , $breite , $hoehe );
ImagePNG ( $neuesBild , $PicPathOut . $TNbild );
}
}
}
//RESIZE END --------------------------------------------
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Themen-Optionen
Ansicht
Linear-Darstellung
Forumregeln
Es ist Ihnen nicht erlaubt , neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt , auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt , Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt , Ihre Beiträge zu bearbeiten.
HTML-Code ist aus .
Alle Zeitangaben in WEZ +2. Es ist jetzt 04:13:57 Uhr.