Зарегистрируйтесь без указания e-mail всего за 1 минуту! Скорее нажмите сюда!
Amor Ex Machina? Maybe.
 

Домик брачных аферистов
Совмещение приятного с полезным


➜ главная Домика
Вы не залогинились! Ваш статус в этом ДоМиКе - гость.
В домике онлайн: 1, замечено за сутки: 13

вернуться на 432 стр. списка тем

Orgasmatron  
Совмещение приятного с полезным
Orgasmatron
Я переработал приложение так, чтобы легко и непринуждённо получать данные об ошибках.

Теперь заслуженно ем пудинг.

[ перейти по ссылке ]

Люка в БАНе  
размер фотки
Люка в БАНе
прежний? до двух?)
Orgasmatron  
12345
Orgasmatron
Да. Ибо нефиг :))). Если все начнут смотреть эти фотки, у меня апстрим будет непроходимый.
Orgasmatron  
12345
Orgasmatron
Фотки можно легко уменьшить в GIMP или Photoshop.
Люка в БАНе  
ну нет(
Люка в БАНе
тогда это еще движения лишние, чем лучше, чем прицеп пихать...?
Orgasmatron  
12345
Orgasmatron
А-а-а! Я вспомнил! Когда-то у меня был скрипт, который уменьшал изображения. Я его потерял в те времена, когда у меня ещё не было резервного копирования на два физических диска. Я могу написать такой скрипт для изображений и прикрутить его к приложению для пересылки. Тогда, например, этот же скрипт можно будет использовать и для массового уменьшения фоток в одной директории. Напишу за пару дней.
Orgasmatron  
12345
Orgasmatron
Собрал PHP с поддержкой GD.

Но функция показывает, что jpg не поддерживается:

var_dump (gd_info());


array(12) {
["GD Version"]=>
string(26) "bundled (2. 1. 0 compatible)"
["FreeType Support"]=>
bool(false)
["GIF Read Support"]=>
bool(true)
["GIF Create Support"]=>
bool(true)
["JPEG Support"]=>
bool(false)
["PNG Support"]=>
bool(true)
["WBMP Support"]=>
bool(true)
["XPM Support"]=>
bool(false)
["XBM Support"]=>
bool(true)
["WebP Support"]=>
bool(false)
["BMP Support"]=>
bool(true)
["JIS-mapped Japanese Font Support"]=>
bool(false)
}


Надо скачать библиотеку для jpg и пересобрать PHP с ней.
Люка в БАНе  
Орг
Люка в БАНе
ты это для кого написал???
Люка в БАНе  
тут
Люка в БАНе
без Предиктора не разобраться.)
Дон Румата  
Гы-гы-гы...)))
Дон Румата
тут и Предиктор шизанётся...)))
Orgasmatron  
12345
Orgasmatron
Ещё вчера вечером скачал, и собрал библиотеку jpg. Потом пересобрал PHP с GD и библиотекой jpg. Вуаля:


var_dump (gd_info());

array(12) {
["GD Version"]=>
string(26) "bundled (2. 1. 0 compatible)"
["FreeType Support"]=>
bool(false)
["GIF Read Support"]=>
bool(true)
["GIF Create Support"]=>
bool(true)
["JPEG Support"]=>
bool(true)
["PNG Support"]=>
bool(true)
["WBMP Support"]=>
bool(true)
["XPM Support"]=>
bool(false)
["XBM Support"]=>
bool(true)
["WebP Support"]=>
bool(false)
["BMP Support"]=>
bool(true)
["JIS-mapped Japanese Font Support"]=>
bool(false)
}


Обращаем внимание:

["JPEG Support"]=>
bool(true)
["PNG Support"]=>
bool(true)

Так что можем работать с изображениями jpg и png.
Orgasmatron  
12345
Orgasmatron
Чтобы изолировать работу со входящими пересылками, создана отдельная файловая система и определёна временная директория вместо системной /tmp. То есть, злоумышленники не смогут заполнить /tmp и нарушить устойчивость системы.

Ограничение по размеру входящих файлов увеличено с 2 МБ до 5 МБ (здесь Люка хлопает в ладоши). В контексте провайдера входящие файлы для меня - downstream, который относительно широк. Исходящие файлы (которые смотрят на форуме) для меня upstream - сравнительно узкий. Поэтому принимаю большой файл, затрачиваю процессорное время на уменьшение изображения и раздаю небольшой файл.

Начал писать скрипт для изменения размера изображений :).
Orgasmatron  
12345
Orgasmatron
Скрипт для изменения (уменьшения) размера изображений jpg написан и прекрасно работает. Теперь надо оформить его как функцию (придумать название и аргументы), и начать вызывать из приложения по пересылке :).
Orgasmatron  
12345
Orgasmatron
Функция готова:

php

function scale_image_down_jpg (string $src_img_path, string $dst_img_path, int $longest_image_side) {

/* $src_img_path // Source image file path
* $dst_img_path // Destination image file path
* $longest_image_side // Pixels
*
*/

$src_img = imagecreatefromjpeg ($src_img_path);
$src_img_w = imagesx ($src_img); // Width
$src_img_h = imagesy ($src_img); // Height
//print "Source: ".$src_img_w." x ".$src_img_h."\n"; //Debug

// Preset dimensions - is this really needed?
$dst_img_w = 0;
$dst_img_h = 0;

if ($src_img_w >= $src_img_h) { // Horizontal proportions
if ($src_img_w > $longest_image_side) { // Image resizing required
$dst_img_w = $longest_image_side;
$ratio = $src_img_w / $dst_img_w;
$dst_img_h = floor ($src_img_h / $ratio);
//print "Destination: ".$dst_img_w." x ".$dst_img_h."\n"; //Debug
} else {
$dst_img_w = $src_img_w;
$dst_img_h = $src_img_h;
//print "Destination: ".$dst_img_w." x ".$dst_img_h."\n"; //Debug
}
} else { // Vertical proportions
if ($src_img_h > $longest_image_side) { // Image resizing required
$dst_img_h = $longest_image_side;
$ratio = $src_img_h / $dst_img_h;
$dst_img_w = floor ($src_img_w / $ratio);
//print "Destination: ".$dst_img_w." x ".$dst_img_h."\n"; //Debug
} else {
$dst_img_w = $src_img_w;
$dst_img_h = $src_img_h;
//print "Destination: ".$dst_img_w." x ".$dst_img_h."\n"; //Debug
}
}

$dst_img = imagecreatetruecolor ($dst_img_w, $dst_img_h);

if (imagecopyresampled ($dst_img, $src_img, 0, 0, 0, 0, $dst_img_w, $dst_img_h, $src_img_w, $src_img_h)) {
if (imagejpeg ($dst_img, $dst_img_path, 100)) {
return true;
} else {
return false;
}
} else {
return false;
}
}


Вызываем функцию в приложении.
Orgasmatron  
12345
Orgasmatron
Готово. Файлы jpg при необходимости уменьшаются (остальные загружаются как есть - позже могу доработать их компрессию). Надо договориться о приемлемом максимальном размере стороны изображения в пикселях (сейчас 700 пикселей).
Люка в БАНе  
Орг
Люка в БАНе
ПОЩАДИ!!!)))
Orgasmatron  
12345
Orgasmatron
Хм... Что-то в производительной среде вопит об ошибке :))). Надо подумать.
Orgasmatron  
12345
Orgasmatron
Я тормоз! В производительной среде модуль PHP ничего не знает про GD и libjpeg - PHP надо пересобрать так же, как я сделал в среде разработки!

Тук-тук-тук! Кто в домике живет? Наверное, мышка-норушка, как всегда... Ну там еще зайчик-побегайчик, лисичка-сестричка... А вас тама, похоже, нет!

Почему? Да потому что на Мейби нужно сначала зарегистрироваться, а потом подать заявку на прописку в ДоМиКе.

Попасть в "15 мин. Славы" ⇩