Thanks to V@no fot this Mod in english: http://www.4homepages.de/forum/index.php?topic=7700.msg17274#msg17274Diese 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.phpFinde:
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):
//--------------------------------------------
//--------- 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.phpFinde:
$this->max_height['media'] = $config['max_image_height'];
Füge
darunter:
$this->auto_image['media'] = $config['auto_image'];
Step 2.2Finde:
if ($this->image_size[1] > $this->max_height[$this->image_type]) {
$ok = 0;
$this->set_error($this->lang['invalid_image_height']);
}
Füge
darunter:
if ($this->auto_image[$this->image_type]) {
$ok = 1;
}
Step 3Öffne
/admin/settings.php Finde:
show_setting_row("upload_emails");
Füge
darunter:
show_setting_row("auto_image", "radio");
show_setting_row("auto_image_quality");
Step 4Öffne
/lang/<yourlanguage>/admin.phpFinde:
$setting['auto_thumbnail_quality'] = "Thumbnail quality<br /><span class=\"smalltext\">0 to 100</span>";
Füge
darunter:
$setting['auto_image'] = "Bild Auto-Groesse";
$setting['auto_image_quality'] = "Bild Auto-Grösse Qualitaet";
Step 5Download "
Autoimage Install" file.
Entpacke alles und packe in deinem 4images ROOT-Verzeichnis.
Starte die Installation so:
http://yoursiteaddress/4images/install_autoimage.phpStep 6Gehe in deinem Adminpanel -> Einstellungen.
Unter Upload Einstellungen findest du neue Optionen.
Step 7Diesen 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.phpSuche:
//--------------------------------------------
//--------- 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:
if (!$uploaderror) {
Füge darunter das ein:
//--------------------------------------------
//--------- 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:
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:
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:
function resize_image($file, $quality, $dimension, $resize_type = 1) {
Ersetze mit:
function resize_image($file, $quality, $dimension, $resize_type = 1, $height = 0) {
Step 8.1.3 Finde:
$width_height = get_width_height($dimension, $image_info[0], $image_info[1], $resize_type);
Ersetze mit:
$width_height = get_width_height($dimension, $image_info[0], $image_info[1], $resize_type, $height);
Step 8.2 Öffne
admin/resizer.php Finde:
$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:
$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:
$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:
$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:
show_input_row($lang['resize_dimension_desc'], "dimension", $dimension);
Ersetze mit:
show_input_row($lang['max_imagewidth'], "dimension", $dimension);
show_input_row($lang['max_imageheight'], "height", $height);
Step 8.2.4 Finde:
$dimension = (isset($HTTP_POST_VARS['dimension'])) ? intval($HTTP_POST_VARS['dimension']) : 200;
Ersetze mit:
$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:
if ($resize_type == 1 && ($image_info[0] > $dimension || $image_info[1] > $dimension)) {
Ersetze mit:
if ($resize_type == 1 && ($image_info[0] > $dimension || $image_info[1] > $height)) {
Step 8.2.6 Find:
elseif ($resize_type == 3 && $image_info[1] > $dimension) {
Ersetze mit:
elseif ($resize_type == 3 && $image_info[1] > $height) {
Step 8.2.7 Finde:
$width_height = get_width_height($dimension, $image_info[0], $image_info[1], $resize_type);
Ersetze mit:
$width_height = get_width_height($dimension, $image_info[0], $image_info[1], $resize_type, $height);
Step 8.2.8 Finde:
show_hidden_input("dimension", $dimension);
Füge darüber:
show_hidden_input("height", $height);
Video Tutorial (English)http://www.asian-lady.org/tutors/resize-mod/resize-mod.html