php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.03.2009, 23:12  
Neuer Benutzer
 
Registriert seit: 05.01.2009
Beiträge: 3
salat befindet sich auf einem aufstrebenden Ast
Standard Bilder richtig resitzen

Hi.

Ich habe ein Problem das mich gerade zur weißglut bringt.

Was ich haben möchte ist eine Funktion, der ich die maximalgröße des zu erstellenden Bildes übergebe und sie mir daraus das größtmögliche Bild macht, ohne das ursprungsbild zu verzerren oder zu stretchen.
Sprich:
bei einer maximalgröße von z.b. 150x200px sollen folgende bilder so aussehen:

10x10px => 10x10px
200x100px => 150x75px
etc...

also es soll halt immer die größte Seite auf die maximalgröße verkleinert werden und wenn beide seiten kleiner sind als die maximalgröße soll es so bleiben etc..

Ich verzweifel aber gnadenlos bei der umsetzung

Hat jemand zufällig noch ein derartiges script rumliegen? die Beispiele die ich im web gefunden habe taugen nichts oder sind viel zu kompliziert:/

grez
salat ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 02.03.2009, 23:25  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Benutze
Code:
min (150 , width)
min (200 , height)
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (02.03.2009 um 23:53 Uhr).
nikosch ist offline  
Alt 02.03.2009, 23:29  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Ach ja, der gute alte Dreisatz aus dem Matheunterricht...

Aaalso. Einfach mal 2 Abfragen basteln:

PHP-Code:
<?php
if ($Breite $MaxBreite)
{
  
$Faktor $MaxBreite $Breite;
  
$Hoehe $Hoehe $Faktor;
  
$Breite $MaxBreite;
}

if (
$Hoehe $MaxHoehe)
{
  
$Faktor $MaxHoehe $Hoehe;
  
$Breite $Breite $Faktor;
  
$Hoehe $MaxHoehe;
}
?>
Wichtig ist, dass da kein else rein kommt, sondern bei Bedarf beide Skalierungen ausgeführt werden.

Ist zwar nicht getestet, aber sollte eigentlich so funktionieren.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 02.03.2009, 23:30  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Benutze
min (150 , width)
min (200 , height)
Nikosch? Bist Du das wirklich?
Wo ist da der Teil, der nicht quetscht oder streckt?
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 02.03.2009, 23:52  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

?? Was meinst Du? Die fehlende Codebox? Hole ich gleich nach

Edit:
Ach so. Nein, ich denke, die Skalierung bekommt er schon selbst hin. Das Problem ist wahrscheinlich nur, die Maximumgeschichte, die man aber mit min lösen muß. Zweimal skalieren finde ich unelegant.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (02.03.2009 um 23:55 Uhr).
nikosch ist offline  
Alt 03.03.2009, 08:01  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Ich glaube aber nicht, dass das mit einer Operation geht.

Man könnte die natürlich verstecken, indem man für Deine beiden min() Operationen das Verhältnis zum Original ermittelt und dann das Minimum beider Faktoren nimmt.

Das wäre dann sowas hier:
PHP-Code:
<?php
$HoeheTemp 
min($Hoehe$HoeheMax);
$BreiteTemp min($Breite$BreiteMax);

$Faktor1 $HoeheTemp $Hoehe;
$Faktor2 $BreiteTemp $Breite;

$Faktor min($Faktor1$Faktor2);

$Hoehe $Hoehe $Faktor;
$Breite $Breite $Faktor;
?>
Das sieht m.E. nun wirklich nicht eleganter aus.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 03.03.2009, 23:07  
Neuer Benutzer
 
Registriert seit: 05.01.2009
Beiträge: 3
salat befindet sich auf einem aufstrebenden Ast
Standard

hi

So, danke für die hilfe hab es jetz einfach mit der_gerhards taktik gemacht und es funktioniert einwandfrei wens interessiert hier mal meine komplette funktion

PHP-Code:
    function resizeimg($src,$dest,$towidth,$toheight){
        list(
$width,$height) = getimagesize($src);
        
$owidth $width;
        
$oheight $height;
        if (
$width $towidth){
            
$faktor $towidth $width;
            
$height $height $faktor;
            
$width $towidth;
        }
        if (
$height $toheight){
              
$faktor $toheight $height;
              
$width $width $faktor;
              
$height $toheight;
        }    
        switch(
strtolower(pathinfo($src,PATHINFO_EXTENSION))){
            case 
'png':
                
$img_src imagecreatefrompng($src);
            break;
            case 
'jpg':
                
$img_src imagecreatefromjpeg($src);
            break;
            case 
'jpeg':
                
$img_src imagecreatefromjpeg($src);
            break;
            case 
'gif':
                
$img_src imagecreatefromgif($src);
            break;
        }
        
$img_dest imagecreatetruecolor($towidth,$toheight);
        
imagefill($img_dest,0,0,0xffffff);
        
imagecopyresampled($img_dest,$img_src,$towidth/2-$width/2,$toheight/2-$height/2,0,0,$width,$height,$owidth,$oheight);
        
imagepng($img_dest,$dest); 
    } 
salat ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bilder ohne DB sicher speichern Diet PHP Tipps 2005 6 25.03.2009 00:07
Entscheidung für Bilder maclaim1988 PHP Tipps 2009 2 07.02.2009 18:50
[Erledigt] Bilder weren ncht aktualisiert pfump PHP Tipps 2008 26 25.08.2008 19:09
Zip Archiv entpacken und Bilder verkleinern Simon9990 PHP Tipps 2008 5 08.10.2007 00:32
bilder zu groß?! lindner PHP Tipps 2006 9 19.10.2006 08:32
Bilder "schützen" PHP Tipps 2006 4 06.03.2006 15:25
Bilder löschen PHP Tipps 2005-2 4 24.10.2005 11:37
Bilder aus einem unterverzeichis anzeigen.Hilfe PHP Tipps 2005-2 3 12.09.2005 15:36
Mehrere Bilder Hochladen und bearbeiten PHP Tipps 2005-2 7 23.07.2005 13:48
[Erledigt] VARIABLEN WERDEN NICHT RICHTIG VERARBEITET!!!! HILFE PHP Tipps 2005-2 6 02.07.2005 18:32
Bilder in Tabellen nixdorf HTML, Usability und Barrierefreiheit 36 09.05.2005 21:15
[Erledigt] Bilder werden nicht richtig angezeigt PHP Tipps 2005 31 30.04.2005 18:29
Bilder aus der Datenbank Skazi Datenbanken 2 09.02.2005 13:42
Bilder werden nicht richtig angezeigt PHP Tipps 2005 11 07.01.2005 13:16
IMAP: Bild(er) in HTML Part richtig darstellen PHP-Fortgeschrittene 1 07.10.2004 12:21


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:25 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum