Photo Album Smartor - automatisch Bilder verkleinern

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
stoni81
Mitglied
Beiträge: 20
Registriert: 29.01.2005 14:35

Photo Album Smartor - automatisch Bilder verkleinern

Beitrag von stoni81 »

Hallo, ich suche einen Mod der automatisch bei Upload der Bilder diese vekleinert.


Ich hatte sowas schon mal wo gesehen aber ich finde das nicht und suche schon irr lange umher.

Kann mir wer helfen.
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

hätte ich auch gerne :D
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Max
Mitglied
Beiträge: 1051
Registriert: 20.02.2003 22:22

Beitrag von Max »

na dann:

Code: Alles auswählen

open album_upload.php 

find: 

Code: 

   if( ($filesize == 0) or ($filesize > $album_config['max_file_size']) ) 
   { 
      message_die(GENERAL_MESSAGE, $lang['Bad_upload_file_size']); 
   } 
 



replace with 

Code: 

   if( ($filesize == 0) or ($filesize > 1024000) ) 
   { 
      message_die(GENERAL_MESSAGE, $lang['Bad_upload_file_size']); 
   } 
   $recompress = 0; 
   if ($filesize > $album_config['max_file_size']) 
   { 
      $recompress = 1; 
   } 
 


find: 

Code: 

   if ( ($pic_width > $album_config['max_width']) or ($pic_height > $album_config['max_height']) ) 
   { 
      @unlink(ALBUM_UPLOAD_PATH . $pic_filename); 

      if ($album_config['gd_version'] == 0) 
      { 
         @unlink(ALBUM_CACHE_PATH . $pic_thumbnail); 
      } 

      message_die(GENERAL_ERROR, $lang['Upload_image_size_too_big']); 
   } 
 


replace with: 

Code: 

   if ( (($pic_width > $album_config['max_width']) or ($pic_height > $album_config['max_height'])) OR ($recompress == 1) ) 
   { 
      if ($album_config['gd_version'] == 0) 
      { 
         @unlink(ALBUM_UPLOAD_PATH . $pic_filename); 
         @unlink(ALBUM_CACHE_PATH . $pic_thumbnail); 
         message_die(GENERAL_ERROR, $lang['Upload_image_size_too_big']." Error code: 001"); 
      } 
      $gd_errored = FALSE; 
          

         switch ($pic_filetype) 
         { 
            case '.jpg': 
               $read_function = 'imagecreatefromjpeg'; 
               break; 
            case '.png': 
               $read_function = 'imagecreatefrompng'; 
               break; 
         } 

         $src = @$read_function(ALBUM_UPLOAD_PATH  . $pic_filename); 

         if (!$src) 
         { 
            $gd_errored = TRUE; 
            $pic_thumbnail = ''; 
         } 

         if (($pic_width > $album_config['max_width']) or ($pic_height > $album_config['max_height'])) 
         { 
            if ($pic_width > $pic_height) 
            { 
               $new_width = $album_config['max_width']; 
               $new_height = $album_config['max_width'] * ($pic_height/$pic_width); 
            } 
            else 
            { 
               $new_height = $album_config['max_height']; 
               $new_width = $album_config['max_height'] * ($pic_width/$pic_height); 
            } 
         } 
         else 
         { 
            $new_width = $pic_width; 
            $new_height = $pic_height; 

         } 
         $new_pic = ($album_config['gd_version'] == 1) ? @imagecreate($new_width, $new_height) : @imagecreatetruecolor($new_width, $new_height); 

         $resize_function = ($album_config['gd_version'] == 1) ? 'imagecopyresized' : 'imagecopyresampled'; 

         @$resize_function($new_pic, $src, 0, 0, 0, 0, $new_width, $new_height, $pic_width, $pic_height); 
       
       
      if (!$gd_errored) 
      { 
         // print $recompress ."<br>".$pic_filename; exit; 
         // overwrite old image 
         @unlink(ALBUM_UPLOAD_PATH . $pic_filename); 
          
         switch ($pic_filetype) 
         { 
            case '.jpg': 
               @imagejpeg($new_pic, ALBUM_UPLOAD_PATH . $pic_filename, 80); 
               break; 
            case '.png': 
               @imagepng($new_pic, ALBUM_UPLOAD_PATH . $pic_filename); 
               break; 
         } 
          
         @chmod(ALBUM_CACHE_PATH . $pic_thumbnail, 0777); 
         $pic_width = $new_width; 
         $pic_height = $new_height; 
      } // End IF $gd_errored 
      else 
      { 
         @unlink(ALBUM_UPLOAD_PATH . $pic_filename); 

         if ($album_config['gd_version'] == 0) 
         { 
            @unlink(ALBUM_CACHE_PATH . $pic_thumbnail); 
         } 

         message_die(GENERAL_ERROR, $lang['Upload_image_size_too_big']." Error code: 002"); 
      } 
   } 
 

I added to error codes Error code: 001 and Error code: 002.. but its for debugging only.. so you know what happened if a user sends u a mail saying he got that code as the output text is the same... error code 1, picture is to big and you don't have gd installed.. 
error code 2 there was a gd error... 


and in lang_main_album.php 
add these three at the end before the ?> 

Code: 
$lang['Max_file_size'] = 'Maximum file size before recompression (bytes)'; 
$lang['Max_width'] = 'Maximum image width before recompression (pixel)'; 
$lang['Max_height'] = 'Maximum image height before recompression  (pixel)'; 


i hope it works for you to.. 
I only tested it with GD2 and i don't allow uploading of gifs... 
(thats why feedback is interesting) 
Ich habe leider grad den Link auf den original-Thread nicht, aber es ist auf Smartors Seite zu finden.

Sollte das nicht gehen, weil nach dem Upload des Bildes eine weiße Seite kommt, kann man in der .htaccess folgendes eintragen (auch von Smartors Seite geholt der Tipp) :

Code: Alles auswählen

php_flag register_globals on 
<FilesMatch "\.(php|html?)$"> 
php_value upload_max_filesize 8M 
php_value memory_limit 40M 
php_value max_execution_time 300 
php_value max_input_time 300 
</FilesMatch> 
Das funktioniert beides bei mir, da das eine Forum ein serverseitg enger gestecktes Uploadlimit hatte, musste ich dort das mit der .htaccess regulieren.

Dann gibt es wohl noch eine Möglichkeit, warum eine weiße Seite erscheint, das habe ich aber nicht gehabt, daher auch nicht weiterverfolgt...

Und wenn alles nicht geht, dann liegt das wohl an der GD-Geschichte.



Gruß Max
Garfield312
Mitglied
Beiträge: 528
Registriert: 03.09.2004 15:54

Beitrag von Garfield312 »

Dieser Mod hat bei mir nicht gefunzt, dafür dieser (auch von Smartors Seite) :

http://www.crh.pwp.blueyonder.co.uk/auto_resizer.zip

Prima Sache, 1 Min. Installation und schön komfortabel übers ACP zu konfigurieren :grin:
Toni
Mitglied
Beiträge: 121
Registriert: 16.01.2004 18:02

Beitrag von Toni »

Hallo,

weiss zufaellig jemand, ob es etwas aehnliches auch fuer den Attachment-Mod gibt ?

Gruss Toni
Garfield312
Mitglied
Beiträge: 528
Registriert: 03.09.2004 15:54

Beitrag von Garfield312 »

In der Art wüßte ich es jetzt nicht, aber ich habe bei mir das Simple Image Resize für den Attach-Mod eingebaut. Funktioniert auch gut.

Das hatte ich irgendwo gefunden, frag aber nicht wo, ich weiß es nicht mehr.
Garfield312
Mitglied
Beiträge: 528
Registriert: 03.09.2004 15:54

Beitrag von Garfield312 »

@Toni:

Ich habs per Zufall wiedergefunden :

"Bild im Attachment-Mod automatisch verkleinern auf Bildschirmbreite :"
Ok wunderbar

also das ist eine Alternative für die Leute:

- die die Thumbnail-Funktion vom Attachment Mod nicht ans laufen kriegen
- die falsche Farben in den Thumbnails haben und auch das nicht behoben bekommen

Hier der Originalcode in der viewtopic_attach_body.tpl :

Code: Alles auswählen

   <tr>
      <td colspan="2" align="center"><br /><img src="{postrow.attach.cat_images.IMG_SRC}" alt="{postrow.attach.cat_images.DOWNLOAD_NAME}" border="0" /><br /><br /></td>
   </tr>
ändern in:

Code: Alles auswählen

   <tr>
      <td colspan="2" align="center"><br /><img src="{postrow.attach.cat_images.IMG_SRC}" onload="javascript:if(this.width > screen.width-400)this.width = (screen.width-400)" onclick="javascript:window.open('{postrow.attach.cat_images.IMG_SRC}','','scrollbars=1,toolbar=0,resizable=1,menubar=0,directories=0,status=0')" alt="F&uuml;r Originalgr&ouml;ße auf das Bild klicken." title="F&uuml;r Originalgr&ouml;ße auf das Bild klicken." border="0" /><br /><br /></td>
   </tr>
Übrigens "-400" finde ich besser bei einer Auflösung von 1024x768
Ist zwar nicht ganz die feine Lösung, funzt aber :grin:
Toni
Mitglied
Beiträge: 121
Registriert: 16.01.2004 18:02

Beitrag von Toni »

Hallo Garfield312,

das ist nicht ganz das, was ich suche.

Habe ja die Thumbnails im Attachmant-Mod am laufen. Habe da pro Datei max. 256 kb erlaubt.

Wuerde da jetzt gerne bei Bildern die Qualitaet senken (komprimieren), damit die Bilddatei kleiner wird.
Koennte somit viel Speicherplatz sparen. Optisch waere es (kaum) nicht bemerkbar.

Gruss Toni
Benutzeravatar
celsius
Mitglied
Beiträge: 43
Registriert: 08.12.2004 13:24
Wohnort: nahe Hildesheim

Beitrag von celsius »

@ max

hi und danke, der gepostete mod funktioniert prächtig.

der "auto resizer" über den link von garfield312 funzte nicht - keine fehlermeldung aber auch keine funktion.

danke!
Garfield312
Mitglied
Beiträge: 528
Registriert: 03.09.2004 15:54

Beitrag von Garfield312 »

@Celsius:

Hattest du den Autoresizer denn richtig übers ACP konfiguriert ? Nur vorsichtshalber gefragt.
Antworten

Zurück zu „phpBB 2.0: Mod Support“