Author Topic: [Mod] Automatisch Bilder verkleinern beim Upload  (Read 4911 times)

0 Members and 1 Guest are viewing this topic.

Offline Sunny C.

  • Addicted member
  • ******
  • Posts: 1.805
  • I ♥ 4I
    • View Profile
[Mod] Automatisch Bilder verkleinern beim Upload
« on: October 14, 2008, 10:33:00 AM »
Thanks to V@no fot this Mod in english: http://www.4homepages.de/forum/index.php?topic=7700.msg17274#msg17274

Diese Mod verkleiner beim Upload die Bilder zu einer eingestellten Max. Breite.
Working on v1.7 - v1.7.4 - v1.7.6


-----------------------------------------------
Dateien die editiert werden:
member.php
includes/upload.php
admin/settings.php
lang/<yourlanguage>/admin.php

-----------------------------------------------


Step 1 (Updated 19/09/04)
Öffne /member.php

Finde:
Code: [Select]
    if (!$uploaderror) {
Füge darüber (Wenn du die Mod "Annotation by SLL" Dann wirst du in eine kleine Änderung machen müssen Step 7):
Code: [Select]
//--------------------------------------------
//--------- Auto Image Resizing --------------
//--------------------------------------------
                  if ($config['auto_image'] && !$uploaderror) {
                     if ($direct_upload) {
                        $src = MEDIA_PATH."/".$cat_id."/".$new_name;
                    }
                    else {
                        $src = MEDIA_TEMP_PATH."/".$new_name;
                    }
                    $do_resize = 0;
               if ($image_info = @getimagesize($src)) {
                       if ($image_info[2] == 1 || $image_info[2] == 2 || $image_info[2] == 3) {
                          $do_resize = 1;
                    }
                  }
                  if ($do_resize) {
                     if (!function_exists(init_convert_options)) {
                           require(ROOT_PATH.'includes/image_utils.php');
                        }
                  if ($image_info[0] > $config['max_image_width'] || $image_info[1] > $config['max_image_height']) {
                       $convert_options = init_convert_options();
                       if (!$convert_options['convert_error']) {
                         $quality = (intval($config['auto_image_quality']) && intval($config['auto_image_quality']) <= 100) ? intval($config['auto_image_quality']) : 100;
                        if (!resize_image($src, $quality, $config['max_image_width'], 1, $config['max_image_height'])) {
                           $msg .= (($msg != "") ? "<br />" : "")."<b>".$lang['file_upload_error'].": ".$new_name;
                                 $uploaderror = 1;
                          }
                           }
                        }
                     }
                  }
//-------------------------------------------




Step 2
Öffne /includes/upload.php

Finde:
Code: [Select]
    $this->max_height['media'] = $config['max_image_height'];
Füge darunter:
Code: [Select]
      $this->auto_image['media'] = $config['auto_image'];


Step 2.2
Finde:
Code: [Select]
    if ($this->image_size[1] > $this->max_height[$this->image_type]) {
      $ok = 0;
      $this->set_error($this->lang['invalid_image_height']);
    }


Füge darunter:
Code: [Select]
      if ($this->auto_image[$this->image_type]) {
         $ok = 1;
      }




Step 3
Öffne /admin/settings.php

Finde:
Code: [Select]
  show_setting_row("upload_emails");
Füge darunter:
Code: [Select]
  show_setting_row("auto_image", "radio");
  show_setting_row("auto_image_quality");


Step 4
Öffne /lang/<yourlanguage>/admin.php

Finde:
Code: [Select]
$setting['auto_thumbnail_quality'] = "Thumbnail quality<br /><span class=\"smalltext\">0 to 100</span>";
Füge darunter:
Code: [Select]
$setting['auto_image'] = "Bild Auto-Groesse";
$setting['auto_image_quality'] = "Bild Auto-Grösse Qualitaet";




Step 5
Download "Autoimage Install" file.

Entpacke alles und packe in deinem 4images ROOT-Verzeichnis.
Starte die Installation so: http://yoursiteaddress/4images/install_autoimage.php


Step 6
Gehe in deinem Adminpanel -> Einstellungen. Unter Upload Einstellungen findest du neue Optionen.


Step 7
Diesen Step brauchst du nur wenn du den Mod "Annotation by SLL" installiert hast!
Den Code aus Step 1, füge ihn nicht wie dort beschrieben darüber, sondern unter der besagten Stelle.
Beispiel:
öffne /member.php
Suche:
Code: [Select]
//--------------------------------------------
//--------- Auto Image Resizing --------------
//--------------------------------------------
                  if ($config['auto_image'] && !$uploaderror) {
                     if ($direct_upload) {
                        $src = MEDIA_PATH."/".$cat_id."/".$new_name;
                    }
                    else {
                        $src = MEDIA_TEMP_PATH."/".$new_name;
                    }
                    $do_resize = 0;
               if ($image_info = @getimagesize($src)) {
                       if ($image_info[2] == 1 || $image_info[2] == 2 || $image_info[2] == 3) {
                          $do_resize = 1;
                    }
                  }
                  if ($do_resize) {
                     if (!function_exists(init_convert_options)) {
                           require(ROOT_PATH.'includes/image_utils.php');
                        }
                  if ($image_info[0] > $config['max_image_width'] || $image_info[1] > $config['max_image_height']) {
                       $convert_options = init_convert_options();
                       if (!$convert_options['convert_error']) {
                         $quality = (intval($config['auto_image_quality']) && intval($config['auto_image_quality']) <= 100) ? intval($config['auto_image_quality']) : 100;
                        if (!resize_image($src, $quality, $config['max_image_width'], 1, $config['max_image_height'])) {
                           $msg .= (($msg != "") ? "<br />" : "")."<b>".$lang['file_upload_error'].": ".$new_name;
                                 $uploaderror = 1;
                          }
                           }
                        }
                     }
                  }
//-------------------------------------------
Lösche den Code!

Suche:
Code: [Select]
    if (!$uploaderror) {Füge darunter das ein:
Code: [Select]
//--------------------------------------------
//--------- Auto Image Resizing --------------
//--------------------------------------------
                  if ($config['auto_image'] && !$uploaderror) {
                     if ($direct_upload) {
                        $src = MEDIA_PATH."/".$cat_id."/".$new_name;
                    }
                    else {
                        $src = MEDIA_TEMP_PATH."/".$new_name;
                    }
                    $do_resize = 0;
               if ($image_info = @getimagesize($src)) {
                       if ($image_info[2] == 1 || $image_info[2] == 2 || $image_info[2] == 3) {
                          $do_resize = 1;
                    }
                  }
                  if ($do_resize) {
                     if (!function_exists(init_convert_options)) {
                           require(ROOT_PATH.'includes/image_utils.php');
                        }
                  if ($image_info[0] > $config['max_image_width'] || $image_info[1] > $config['max_image_height']) {
                       $convert_options = init_convert_options();
                       if (!$convert_options['convert_error']) {
                         $quality = (intval($config['auto_image_quality']) && intval($config['auto_image_quality']) <= 100) ? intval($config['auto_image_quality']) : 100;
                        if (!resize_image($src, $quality, $config['max_image_width'], 1, $config['max_image_height'])) {
                           $msg .= (($msg != "") ? "<br />" : "")."<b>".$lang['file_upload_error'].": ".$new_name;
                                 $uploaderror = 1;
                          }
                           }
                        }
                     }
                  }
//-------------------------------------------


Step 8 (HÖHEN FIX) (Added 19/09/04) Original by V@no
Dieser Step ist nicht von wichtigkeit. Mit diesem Step, wird auch die Höhe mit eingebracht. Ich pers. finde das von nutzen.
Wie gesagt, ist aber kein muss.

Step 8.1
Öffne: includes/image_utils.php
Finde:
Code: [Select]

function get_width_height($dimension, $width, $height, $resize_type = 1) {
  if ($resize_type == 2) {
    $new_width = $dimension;
    $new_height = floor(($dimension/$width) * $height);
  }
  elseif ($resize_type == 3) {
    $new_width = floor(($dimension/$height) * $width);
    $new_height = $dimension;
  }
  else {
    $ratio = $width / $height;
    if ($ratio > 1) {
      $new_width = $dimension;
      $new_height = floor(($dimension/$width) * $height);
    }
    else {
      $new_width = floor(($dimension/$height) * $width);
      $new_height = $dimension;
    }
  }
  return array("width" => $new_width, "height" => $new_height);
}


Ersetze mit:
Code: [Select]
function get_width_height($w, $width, $height, $resize_type = 1, $h = 0) {
  $h = ($h) ? $h : $w;
  if ($resize_type == 2) {
    $new_width = $w;
    $new_height = round(($w/$width) * $height);
  }
  elseif ($resize_type == 3) {
    $new_width = round(($h/$height) * $width);
    $new_height = $h;
  }
  else {
    $new_width = min ($w, $width);
    $new_height = min ($h, $height);
    $p = ($w > $h) ? $width / $height : $height / $width;
    if ($p > 1)
      $new_height = round($height * $new_width / $width);
    elseif ($p < 1)
      $new_width = round($width * $new_height / $height);
    if ($new_width > $w || $new_height > $h)
    {
      $new_width = min ($w, $new_width);
      $new_height = min ($h, $new_height);
      $p = ($w > $h) ? $height / $width : $width / $height;
      if ($p > 1)
        $new_height = round($height * $new_width / $width);
      elseif ($p < 1)
        $new_width = round($width * $new_height / $height);
    }
  }
  return array("width" => $new_width, "height" => $new_height);
}



Step 8.1.2
Finde:
Code: [Select]
function resize_image($file, $quality, $dimension, $resize_type = 1) {

Ersetze mit:
Code: [Select]
function resize_image($file, $quality, $dimension, $resize_type = 1, $height = 0) {


Step 8.1.3
Finde:
Code: [Select]
  $width_height = get_width_height($dimension, $image_info[0], $image_info[1], $resize_type);

Ersetze mit:
Code: [Select]
  $width_height = get_width_height($dimension, $image_info[0], $image_info[1], $resize_type, $height);


Step 8.2
Öffne admin/resizer.php
Finde:
Code: [Select]
  $dimension = (isset($HTTP_POST_VARS['dimension'])) ? intval($HTTP_POST_VARS['dimension']) : 200;
  $resize_type = (isset($HTTP_POST_VARS['resize_type'])) ? intval($HTTP_POST_VARS['resize_type']) : 1;


Ersetze mit:
Code: [Select]
  $dimension = (isset($HTTP_POST_VARS['dimension'])) ? intval($HTTP_POST_VARS['dimension']) : $config['max_image_width'];
  $height = (isset($HTTP_POST_VARS['height'])) ? intval($HTTP_POST_VARS['height']) : $config['max_image_height'];
  $resize_type = (isset($HTTP_POST_VARS['resize_type'])) ? intval($HTTP_POST_VARS['resize_type']) : $config['auto_thumbnail_resize_type'];



Step 8.2.2
Finde:
Code: [Select]
  $dimension = (isset($HTTP_POST_VARS['dimension'])) ? intval($HTTP_POST_VARS['dimension']) : 200;
  $resize_type = (isset($HTTP_POST_VARS['resize_type'])) ? intval($HTTP_POST_VARS['resize_type']) : 1;


Ersetze mit:
Code: [Select]
  $dimension = (isset($HTTP_POST_VARS['dimension'])) ? intval($HTTP_POST_VARS['dimension']) : $config['max_image_width'];
  $height = (isset($HTTP_POST_VARS['height'])) ? intval($HTTP_POST_VARS['height']) : $config['max_image_height'];
  $resize_type = (isset($HTTP_POST_VARS['resize_type'])) ? intval($HTTP_POST_VARS['resize_type']) : $config['auto_thumbnail_resize_type'];



Step 8.2.3
Finde:
Code: [Select]
  show_input_row($lang['resize_dimension_desc'], "dimension", $dimension);

Ersetze mit:
Code: [Select]
  show_input_row($lang['max_imagewidth'], "dimension", $dimension);
  show_input_row($lang['max_imageheight'], "height", $height);



Step 8.2.4
Finde:
Code: [Select]
  $dimension = (isset($HTTP_POST_VARS['dimension'])) ? intval($HTTP_POST_VARS['dimension']) : 200;

Ersetze mit:
Code: [Select]
  $dimension = (isset($HTTP_POST_VARS['dimension'])) ? intval($HTTP_POST_VARS['dimension']) : $config['max_image_height'];
  $height = (isset($HTTP_POST_VARS['height'])) ? intval($HTTP_POST_VARS['height']) : $config['max_image_height'];


Step8. 2.5
Finde:
Code: [Select]
          if ($resize_type == 1 && ($image_info[0] > $dimension || $image_info[1] > $dimension)) {

Ersetze mit:
Code: [Select]
          if ($resize_type == 1 && ($image_info[0] > $dimension || $image_info[1] > $height)) {


Step 8.2.6
Find:
Code: [Select]
          elseif ($resize_type == 3 && $image_info[1] > $dimension) {

Ersetze mit:
Code: [Select]
          elseif ($resize_type == 3 && $image_info[1] > $height) {


Step 8.2.7
Finde:
Code: [Select]
            $width_height = get_width_height($dimension, $image_info[0], $image_info[1], $resize_type);

Ersetze mit:
Code: [Select]
            $width_height = get_width_height($dimension, $image_info[0], $image_info[1], $resize_type, $height);


Step 8.2.8
Finde:
Code: [Select]
    show_hidden_input("dimension", $dimension);

Füge darüber:
Code: [Select]
    show_hidden_input("height", $height);


Video Tutorial (English)
http://www.asian-lady.org/tutors/resize-mod/resize-mod.html

Offline mawenzi

  • Moderator
  • 4images Guru
  • *****
  • Posts: 4.500
    • View Profile
Re: [Mod] Automatisch Bilder verkleinern beim Upload
« Reply #1 on: October 14, 2008, 01:01:21 PM »
... was soll das ... ?
... wenn du hier deine neuen Übersetzungsfähigkeiten präsentieren möchtest ...
... dann mache das bitte in den entsprechenden Threads ...
... mit deiner Vorgehensweise zersplittest du Aktualisierung und Weiterentwicklung der MODs ...
... und das gilt für alle gleichgelagerten "Übersetzungen" ...
... Thread geschlossen ...
Your first three "must do" before you ask a question ! ( © by V@no )
- please read the Forum Rules ...
- please study the FAQ ...
- please try to Search for your answer ...

You are on search for top 4images MOD's ?
- then please search here ... Mawenzi's Top 100+ MOD List (unsorted sorted) ...