Домик брачных аферистов
Совмещение приятного с полезным
➜ главная Домика
Вы не залогинились! Ваш статус в этом ДоМиКе - гость.
В домике онлайн: 1, замечено за сутки: 14
вернуться на 432 стр. списка тем
Orgasmatron
Совмещение приятного с полезным
Совмещение приятного с полезным
Я переработал приложение так, чтобы легко и непринуждённо получать данные об ошибках.
Теперь заслуженно ем пудинг.
Теперь заслуженно ем пудинг.
Люка в БАНе
размер фотки
размер фотки
Orgasmatron
12345
12345
Orgasmatron
12345
12345
Люка в БАНе
ну нет(
ну нет(
Orgasmatron
12345
12345
А-а-а! Я вспомнил! Когда-то у меня был скрипт, который уменьшал изображения. Я его потерял в те времена, когда у меня ещё не было резервного копирования на два физических диска. Я могу написать такой скрипт для изображений и прикрутить его к приложению для пересылки. Тогда, например, этот же скрипт можно будет использовать и для массового уменьшения фоток в одной директории. Напишу за пару дней.
Orgasmatron
12345
12345
Собрал 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 с ней.
Но функция показывает, что 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
12345
Ещё вчера вечером скачал, и собрал библиотеку 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.
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
12345
Чтобы изолировать работу со входящими пересылками, создана отдельная файловая система и определёна временная директория вместо системной /tmp. То есть, злоумышленники не смогут заполнить /tmp и нарушить устойчивость системы.
Ограничение по размеру входящих файлов увеличено с 2 МБ до 5 МБ (здесь Люка хлопает в ладоши). В контексте провайдера входящие файлы для меня - downstream, который относительно широк. Исходящие файлы (которые смотрят на форуме) для меня upstream - сравнительно узкий. Поэтому принимаю большой файл, затрачиваю процессорное время на уменьшение изображения и раздаю небольшой файл.
Начал писать скрипт для изменения размера изображений :).
Ограничение по размеру входящих файлов увеличено с 2 МБ до 5 МБ (здесь Люка хлопает в ладоши). В контексте провайдера входящие файлы для меня - downstream, который относительно широк. Исходящие файлы (которые смотрят на форуме) для меня upstream - сравнительно узкий. Поэтому принимаю большой файл, затрачиваю процессорное время на уменьшение изображения и раздаю небольшой файл.
Начал писать скрипт для изменения размера изображений :).
Orgasmatron
12345
12345
Orgasmatron
12345
12345
Функция готова:
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;
}
}
Вызываем функцию в приложении.
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
12345
Люка в БАНе
Орг
Орг
Orgasmatron
12345
12345
Orgasmatron
12345
12345
Тук-тук-тук! Кто в домике живет? Наверное, мышка-норушка, как всегда... Ну там еще зайчик-побегайчик, лисичка-сестричка... А вас тама, похоже, нет!
Почему? Да потому что на Мейби нужно сначала зарегистрироваться, а потом подать заявку на прописку в ДоМиКе.