VHS

VHS
Рейтинг
142
Регистрация
28.09.2007

Inkscape в помощь

есть сайты на C++. Вот только зачем?

Samail:
Блок обновляли?
Метрика считает нажатия только для старой версии блока поделиться, для новой нет. Обещали исправить...

Да, обновлял... Спасибо!

http://news.netcraft.com/archives/2016/02/22/february-2016-web-server-survey.html

Это должно помочь сделать выбор, миллионы людей не могут ошибаться...

Ты просто решил поделиться куском г-кода, или как обычно просишь решить за тебя все проблемы?

1 - Посчитай открывающиеся и закрываюoиеся теги <script>

2 - Открой для себя кнопку F12 и вкладку Console

// получаем размер и тип изображения
$size = getimagesize($src);
// тут по идее при ошибке должно возвращаться или null или false, в разных мануалах по разному, но проверка идет через булево... вообщем если что-то не так - прерываем работу
if ($size === false) {
return false;
}
// получаем тип изображения
$format = strtolower(substr($size['mime'], strpos($size['mime'], '/') + 1));
// если недоступна функция обработки изображения данного типа - выходим
$icfunc = 'imagecreatefrom'.$format;
if (!function_exists($icfunc)) {
return false;
}

// Коэффициент изменения ширины изображения
$x_ratio = $width / $size[0];
// коэффициент изменения высоты изображения
$y_ratio = $height / $size[1];

// если высота не передана - изменяем по ширине
if ($height == 0) {

$y_ratio = $x_ratio;
$height = $y_ratio * $size[1];
// если ширина не передана - изменяем по высоте
} elseif ($width == 0) {

$x_ratio = $y_ratio;
$width = $x_ratio * $size[0];

}


// получаем минимальный коэффициент
$ratio = min($x_ratio, $y_ratio);
// Проверяем, а не равен ли минимальный коэффициент коэффициенту изменения ширины
$use_x_ratio = ($x_ratio == $ratio);

// новая ширина - или переданная в функцию, или полученная через коэффициент
$new_width = $use_x_ratio ? $width : floor($size[0] * $ratio);
// аналогично для высоты
$new_height = !$use_x_ratio ? $height : floor($size[1] * $ratio);

// если новая ширина не изменилась, то отступов не делаем, иначе центруем новое изображение по горизонтали
$new_left = $use_x_ratio ? 0 : floor(($width - $new_width) / 2);
// аналогично по вертикали
$new_top = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2);

// получаем изображение из файла, переданного в функцию
$isrc = $icfunc($src);

// создаем холст нового изображения
$idest = imagecreatetruecolor($width, $height);

// заливка фоном
imagefill($idest, 0, 0, $rgb);
// размещаем на холсте изображение, масштабируем, если надо - смещаем его
imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0, $new_width, $new_height, $size[0], $size[1]);
// сохраняем новое изображение
imagejpeg($idest, $dest, $quality);

// чистим память от промежуточных картинок
imagedestroy($isrc);
imagedestroy($idest);

А вообще этот пример стандартно-типовой с одного из сайтов php-шного сообщества

---------- Добавлено 12.03.2016 в 01:38 ----------

Иван НСК:
Если написать var_dump($x_ratio, $y_ratio) , то на экране можно увидеть результат деления float(0.41390728476821) float(0.63938618925831) , этот результат дает пропорции картинке, только не могу понять как это работает.

На это число умножается размер в px исходной картинки, для того, чтобы картинка сохранила пропорции.

---------- Добавлено 12.03.2016 в 01:48 ----------

Ну и в догонку, чтобы автор понимал.

Стандартные функции изображений php - очень ресурсоемки, сильно тормозят и вообще прошлый век. При больших размерах изображений упереться в потолок оперативки на лимитированном хостинге - раз плюнуть, да и просто стандартную выделенную оперативку сожрать - без проблем.

Советую пользовать Imagick....

К примеру код ресайза (правда с некими допилами под свои костыли)

public function thumb($source, $dest, $w, $h = 0)
{

if (file_exists($source) && !file_exists($dest)) {
$image = new Imagick($source);
} else {
return false;
}
$bigSize = ($image->getImageWidth() > $image->getImageHeight()) ? true : false;

if($h == 0) {
if($bigSize) {
$image->thumbnailImage($w, 0);
} else {
$image->thumbnailImage(0, $w);
}
} else {
$image->cropThumbnailImage($w, $h);
}

$image->setImageFormat('jpeg');
$image->setImageCompression(imagick::COMPRESSION_JPEG);
$image->setImageCompressionQuality(75);
$image->stripImage();
return $image->writeImage($dest); // TRUE OR FALSE

}

Судя по описанию никак не связаны... и да, смысла хранить 1 столбец как-то немного...

По идее в первой должно быть минимум два столбца - id и название. Во втором id сериала должен быть так же. Везде id должен быть ключем (в первом случае primary, во втором простой). Тогда по ним организуется связь.

Ну судя по картинкам угадал....

таблица series_name - добавить поле id, primary index

таблица series_table - добавить поле series_id, index.

Я бы пошел путем перевода Англ. имя -> транскрипция англ. имени -> русское написание

chexiz:
Так врод бы наоборот , перед праздниками посещалка увеличивалась! Нет?

Смотря У кого. В праздничных и подарочных тематиках-да, в железобетонных конструкциях - нет.

Всего: 693