+ Antworten
Ergebnis 1 bis 8 von 8

Thema: Bild entweder in der Breite oder in der Höhe anpassen

  1. #1
    TP-Supporter Taney macht alles soweit korrekt Avatar von Taney
    Registriert seit
    Jun 2004
    Ort
    Stuttgart
    Beiträge
    376

    Bild entweder in der Breite oder in der Höhe anpassen

    Hallo Forum,
    kann man eigentlich problemlos Bilder entweder der Breite nach bzw. der Höhe nach an einen Rahmen anpassen?
    Bisher habe ich die Bilder unserer Mitglieder der höhe nach festgeleget (200px). Die breite wäre dann variable.
    Es gibt aber Mitglieder, die haben ein ewig breiter Bild.

    Könnte man das wie in diesem Beispiel (http://www.angesagt.de/angesagter.html) je nach Situation entweder der Höhe bzw. nach der Breite anzupassen?

    Für Eure Bemühungen bedanke ich mich im Voraus.
    Viele Grüße
    Taner
    Yamuk.com | My Internet Community | Hier bin ich richtig
    In Bearbeitung

  2. #2
    TP-Insider Daniel FR hilft, wo's geht Daniel FR hilft, wo's geht Daniel FR hilft, wo's geht Avatar von Daniel FR
    Registriert seit
    Apr 2006
    Ort
    28219 Walle
    Beiträge
    659
    Nehmen wir an, die Bilder sollen eine maximale Höhe und Breite von jeweils 200px nicht überschreiten. Dann packst du das Bild in einen umgebenden Container von 200px Breite und 200px Höhe. Das Bild im Container skaliert automatisch mit max-width und max-height 100%. Das funktioniert allerdings nur in Browsern, die max-width und max-height korrekt umsetzen, also nicht im M$IE.

    HTML:
    Code:
    <div class="bildbox">
      <img src="bild.jpg" />
    </div>
    CSS:
    Code:
    .bildbox
    {
    height:200px;
    width:200px;
    }
    
    .bildbox img
    {
    max-height:100%;
    max-width:100%;
    }
    "Wir können hier richtig deutsch diskutieren, wir haben Verbandszeug im Hause." - Wolfgang Neuss, 1923–1989

  3. #3
    TP-Supporter buffy2511 macht alles soweit korrekt Avatar von buffy2511
    Registriert seit
    Feb 2005
    Ort
    Braunschweig
    Beiträge
    462
    Browserunabhängig hättest Du ansonsten noch die Möglichkeit mittels php eine Resize-Funktion einzubauen. Da kannst Du dann ganz genau angeben, welche maximalen Maße Dein Bild haben soll. Es wird dann automatisch runtergerechnet.
    Grüße aus der Löwenstadt, Nadine

  4. #4
    TP-Insider Daniel FR hilft, wo's geht Daniel FR hilft, wo's geht Daniel FR hilft, wo's geht Avatar von Daniel FR
    Registriert seit
    Apr 2006
    Ort
    28219 Walle
    Beiträge
    659
    Zitat Zitat von buffy2511
    Browserunabhängig hättest Du ansonsten noch die Möglichkeit mittels php eine Resize-Funktion einzubauen. Da kannst Du dann ganz genau angeben, welche maximalen Maße Dein Bild haben soll. Es wird dann automatisch runtergerechnet.
    Das wäre wohl die bessere Lösung, auch wegen der Dateigrößen.
    Es muss aber auch Möglichkeiten geben, den Upload zu großer Bilder zu blockieren (d. h. den Kunden zu erziehen ). Jedenfalls kenne ich das von Foren. Da kann man i. d. R. keinen Avatar hochladen, der größer als ein vorgegebener Maximalwert ist.
    "Wir können hier richtig deutsch diskutieren, wir haben Verbandszeug im Hause." - Wolfgang Neuss, 1923–1989

  5. #5
    TP-Insider Corsachriz bringt sich richtig ein Corsachriz bringt sich richtig ein Avatar von Corsachriz
    Registriert seit
    Apr 2006
    Ort
    nähe Köln
    Beiträge
    593
    oder man gibt dem div container ein
    HTML-Code:
    overflow:hidden
    , so dass größere Bilder genau dort abgeschnitten werden, wo der container endet. natürlich sollte man dennoch die max. Bildgröße festlegen, sonst können die user high-res pics hochladen, und man sieht nur die obere linke ecke (und dein Server wird voll )
    I like "selbstgemacht"!
    3 Backlinks aus deinem Artikel
    Fotos Online Preisvergleich
    Ich tausche Links - auch mit schwachen oder neuen Seiten. Schreib mir einfach

  6. #6
    TP-Supporter Taney macht alles soweit korrekt Avatar von Taney
    Registriert seit
    Jun 2004
    Ort
    Stuttgart
    Beiträge
    376
    Hallo, vielen Dank für die Antwort.
    Ich werde mal gleich bei Gelegenheit die Variante von Daniel testen. Danke erstmal

    overflow:hidden
    Dies würde nicht in Frage kommen, da einfach das abschneiden von den Bildern schlimm aussehen würde. Lieber automatisch skalieren.

    Die beste Möglichkeit wäre es, wie buffy schon schreibt per Resize das einzustellen, nur läuft unsere Community auf .jsp Basis.
    Am besten wäre es, wenn man beim Upload eine bestimmte Größe erzwingen könnte, bzw. die User laden ein Bild in ein Vorschaufenster hoch und haben ein Rechteck zur Verfügung, mit der Sie über das Bild fahren und das Bild abschneiden können. (Ich hoffe, ich habe es verständlich erklärt? )

    Viele Grüße aus Stuttgart
    Taner
    Yamuk.com | My Internet Community | Hier bin ich richtig
    In Bearbeitung

  7. #7
    TP-Newbie angesagt macht alles soweit korrekt
    Registriert seit
    Jul 2006
    Beiträge
    1
    Zitat Zitat von Taney
    Die beste Möglichkeit wäre es, wie buffy schon schreibt per Resize das einzustellen, nur läuft unsere Community auf .jsp Basis.
    Am besten wäre es, wenn man beim Upload eine bestimmte Größe erzwingen könnte, bzw. die User laden ein Bild in ein Vorschaufenster hoch und haben ein Rechteck zur Verfügung, mit der Sie über das Bild fahren und das Bild abschneiden können. (Ich hoffe, ich habe es verständlich erklärt? )

    Viele Grüße aus Stuttgart
    Taner
    man nehme ganz einfach js für die auswahl des bereiches
    und man schreibt diese funktion in jsp um..
    PHP-Code:
    thumb("grafik.jpg","image/jpeg"'jpg',247,343$file ,100 );

    function 
    thumb($srcFile$srcType$dstType$dstWidth$dstHeight$dstPath,$quality=90)
    {
       if (
    $srcType == "image/jpeg")
           
    $handle imagecreatefromjpeg($srcFile);
       else if (
    $srcType == "image/png")
           
    $handle imagecreatefrompng($srcFile);
       else if (
    $srcType == "image/gif")
           
    $handle imagecreatefromgif($srcFile);
       else
           return 
    false;

       if (!
    $handle)
           return 
    false;
         
       
    $srcWidth  imagesx($handle);
       
    $srcHeight imagesy($handle);
     
      
       if (
    $srcWidth >= $dstWidth && $srcHeight >= $dstHeight)
       {
         
           
    $newHandle imagecreatetruecolor($dstWidth$dstHeight);
           if (!
    $newHandle)
               return 
    false;
               
           if(
    $srcHeight $srcWidth)
           {
               
    $ratio = (double)($srcHeight $dstHeight);

               
    $cpyWidth round($dstWidth $ratio);
               if (
    $cpyWidth $srcWidth)
               {
                   
    $ratio = (double)($srcWidth $dstWidth);
                   
    $cpyWidth $srcWidth;
                   
    $cpyHeight round($dstHeight $ratio);
                   
    $xOffset 0;
                   
    $yOffset round(($srcHeight $cpyHeight) / 2);
               } else {
                   
    $cpyHeight $srcHeight;
                   
    $xOffset round(($srcWidth $cpyWidth) / 2);
                   
    $yOffset 0;
               }

           } else {
               
    $ratio = (double)($srcWidth $dstWidth);

               
    $cpyHeight round($dstHeight $ratio);
               if (
    $cpyHeight $srcHeight)
               {
                   
    $ratio = (double)($srcHeight $dstHeight);
                   
    $cpyHeight $srcHeight;
                   
    $cpyWidth round($dstWidth $ratio);
                   
    $xOffset round(($srcWidth $cpyWidth) / 2);
                   
    $yOffset 0;
               } else {
                   
    $cpyWidth $srcWidth;
                   
    $xOffset 0;
                   
    $yOffset round(($srcHeight $cpyHeight) / 2);
               }
           }

           if (!
    imagecopyresampled($newHandle$handle00$xOffset$yOffset$dstWidth$dstHeight$cpyWidth$cpyHeight))
               return 
    false;
           
    imagedestroy($handle);
                
                if( 
    $dstWidth <= 150 ){    
                    
    #$newHandle  = set_sharpnes( $newHandle, $dstWidth, $dstHeight );
                
    }

                
    // $newHandle = contrast($newHandle,$dstWidth,$dstHeight );    
                    
           
    if ($dstType == "png")
               
    imagepng($newHandle$dstPath);
           else if (
    $dstType == "jpg")
               
    imagejpeg($newHandle$dstPath$quality);
           else if (
    $dstType == "gif")
               
    imagegif($newHandle$dstPath);
           else
               return 
    false;
           
    imagedestroy($newHandle);
           return 
    true;

       } else {
           return 
    "Sorry aber .... ";
       }


  8. #8
    TP-Supporter Taney macht alles soweit korrekt Avatar von Taney
    Registriert seit
    Jun 2004
    Ort
    Stuttgart
    Beiträge
    376
    Hallo, vielen Dank "angesagt", ich werde schauen, was sich machen lässt

    Was ich auf jedenfall noch naher gleich testen muss, ist die Empfehlung von "Daniel FR", dies wäre auch interessant für andere Bilder, anstatt Profilbilder.

    Viele Grüße
    Taner
    Yamuk.com | My Internet Community | Hier bin ich richtig
    In Bearbeitung

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51