Bildbreite und Höhe anpassen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Bildbreite und Höhe anpassen

    Hallo,

    bin gerade dabei ein Bildupload zu erstellen. Nun habe ich aber ein Problem beim anpassen der Thumbnails. Mit der Angabe einer max. Bildbreite ist das auch relativ einfach umzusetzten. Doch ich möchte aber zwei Maximalwerte vorgeben. Also eben max. Breite und Höhe der Thumbnails.

    So sieht es bisher aus:
    PHP-Code:
    $imgageinfo getimagesize("image.jpg");

    $max_width 120
    $max_height 
    90

    if ($imgageinfo[0] > $max_width ) {
        
    $max_height = ($imgageinfo[1] * $max_width) / $imgageinfo[0];
    }

    if (
    $imgageinfo[1] > $max_height ) {
        
    $max_width = ($imgageinfo[0] * $max_height) / $imgageinfo[1];

    Nur leider funktioniert dies natürlich nicht, da ja beide Werte direkt voneinander abhängig sind.

    Hat von euch jemand eine Idee wie man das umsetzten kann.

    Viele Grüsse
    Jirka

  • #2
    klar benutz die Suche und Du findest Deine Lösung
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Re: Bildbreite und Höhe anpassen

      naja,

      ich hatte mir die tage im zuge der entwicklung des puzzle-generators ne function shrinkToFit gebastelt, die als argumente des bild und die maximale größe für x und y erhält, und dann jenach ... resized, sogar mit beibehaltung des größenverhältnisses ....

      das muß in eine klasse gepackt werden ....
      PHP-Code:
        function resizeTo ($image$resizeXTo$resizeYTo) {
          if (
      is_string($image)) $initImage $this->no_imagecreatefrom ($image);
          else 
      $initImage $image;
          (
      function_exists("imagecreatetruecolor"))
            ? 
      $tempHandle imagecreatetruecolor ($resizeXTo$resizeYTo)
            : 
      $tempHandle imagecreate ($resizeXTo$resizeYTo);
          
      ImageCopyResized ($tempHandle$initImage0000$resizeXTo$resizeYToimagesx($initImage), imagesy($initImage));
          return 
      $tempHandle;
        }

        function 
      resizeToAndKeepAspectRatio ($image$resizeXTo$resizeYTo) {
          if (
      is_string($image)) $initImage $this->no_imagecreatefrom ($image);
          else 
      $initImage $image;
          if (
      $resizeYTo == 0$aspectRatio $resizeXTo imagesx ($initImage);
          else 
      $aspectRatio $resizeYTo imagesy ($initImage);
          return 
      $this->resizeTo ($imageimagesx ($initImage) * $aspectRatioimagesy ($initImage) * $aspectRatio);
        }

        function 
      shrinkToFit ($image$shrinkXTo$shrinkYTo) {
          if (
      is_string($image)) $initImage $this->no_imagecreatefrom ($image);
          else 
      $initImage $image;
          if (
      imagesx($initImage) > $shrinkXTo$initImage $this->resizeToAndKeepAspectRatio ($initImage$shrinkXTo0);
          if (
      imagesy($initImage) > $shrinkYTo$initImage $this->resizeToAndKeepAspectRatio ($initImage0$shrinkYTo);
          return 
      $initImage;  
        } 
      wäre schön, wenn du das mal testen würdest, dann weiß ich auch gleich, obs funktioniert, oder obs nur durch zufall bei mir geht ...

      du rufst einfach
      PHP-Code:
      $neues_bild $instanz->shrinkToFit (dein_bild_als_handle_oder_pfadmax_xmax_y); 
      auf ....

      ich hoffe, php bietet da keine interne funktion, die mir das abgenommen hätte, löl.

      EDIT:

      upps,

      du mußt natürlich
      PHP-Code:
      $this->no_imagecreatefrom ($image); 
      durch
      PHP-Code:
      imagecreatefromjpeg 
      etc. ersetzen oder ich poste die funktion zum dateityp-unabhängigen öffnen auch noch ...


      Zuletzt geändert von derHund; 19.12.2003, 16:17.
      Die Zeit hat ihre Kinder längst gefressen

      Kommentar

      Lädt...
      X