X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Правильное создание миниатюры, определенный размер
kolesgan
kolesgan
Topic Starter сообщение 30.5.2011, 0:03; Ответить: kolesgan
Сообщение #1


На сайте есть некая фотогаллерея. Выводятся они в ряд по 5 фоток. Размеры у разных фоток различны. Подгоняю по выстое в 100px. Возможно ли сделать так как здесь http://www.renaissance.cc/index.php/2010-0....11%20Ballon4ik
Миниатюры в независимости от размеров изображения выводятся квадратиком в 100 px на 100. То есть излишние пикселы обрезаются для вывода миниатюр,
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
matroskin8
matroskin8
сообщение 30.5.2011, 12:25; Ответить: matroskin8
Сообщение #2


На указанном сайте миниатюры имеют размер 100*100. Эти размеры и указаны при выводе картинок:
<img src="" width="100" height="100" alt="" />

В принципе, это можно посмотреть в исходном коде и свойствах миниатюр.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
almatar
almatar
сообщение 30.5.2011, 13:37; Ответить: almatar
Сообщение #3


Я думаю здесь всё дело в прокладке.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
kolesgan
kolesgan
Topic Starter сообщение 30.5.2011, 15:00; Ответить: kolesgan
Сообщение #4


matroskin8, при установке размеров изображение подгоняется под эти размеры, растягивается или сжимается. а мне надо чтоб изображение осталось таким же просто лишние пикселы срезались, будь лишние в ширине или в высоте
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Гость_0_* Гость_0_*
сообщение 30.5.2011, 16:19; Ответить: Гость_0_*
Сообщение #5


kolesgan, так это же очень легко делается на php, используя библиотеку GD. Я бы с радостью вам помог, но нет времени разбираться. покопайтесь сами в GD, там всё понятно. Если что, прочитайте главу "Работа с изображениями" (примерно так называется) в книге "PHP5 в подлиннике".
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
matroskin8
matroskin8
сообщение 30.5.2011, 16:22; Ответить: matroskin8
Сообщение #6


kolesgan, Логично. Я просто сказал, что на указанном сайте ничего не подгоняется - там миниатюры имеют размер 100*100
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 30.5.2011, 20:13; Ответить: ZiTosS
Сообщение #7


kolesgan, чтобы сделать нормальную миниатюру, которая будет содержать информацию, а не огрызок, правильнее было бы формировать её самому. При загрузке картинки тебе дается возможность создать миниатюру, квадрат 100x100 минимум, его можно растягивать пропорционально и перемещать по картинке (реализуется на JS), далее при выборе куска картинки скрипт вырезает его и сжимает до 100x100, затем сохраняет на сервере.

А если считать, что важная информация находится в центре картинки, то можно сделать примерно так:
1) Определяем размер меньшей стороны, прикладываем к нему множитель 0.8, округляем получившееся число до целых пикселей.
2) Такой величины имеем квадрат, осталось его отцентрировать, то есть нужно будет определиться с размерами отступа для обрезки в GD. Нарисуйте себе на бумажке и все станет понятно, там задается обычно два отступа от верхнего левого угла и размеры копии (функция imagecopy).
3) Далее нужно получившуюся большую заготовку сжать до 100x100 пикселей функцией

Для последнего случая примерно такой код получается, сразу скажу, что вариант рассчитан -> важная информация расположена крупным планом в центре изображения. Например, файл называется image.php:
[php]<?php

$sourceimg = "catalog/image.jpg"; // путь до картинки с её именем и расширением
$size_mini = 200; // размер миниатюры (сторона квадрата)
$factorcutoff = 1; // коэффициент среза от минимального размера (описан в алгоритме)

list($width, $height) = getimagesize($sourceimg);
$src = imagecreatefromjpeg($sourceimg);
$dst = imagecreatetruecolor($size_mini, $size_mini);

$size_square = ceil(($width > $height) ? $height * $factorcutoff : $width * $factorcutoff);
$indentX = ceil(($width - $size_square) / 2);
$indentY = ceil(($height - $size_square) / 2);

imagecopyresized($dst, $src, 0, 0, $indentX, $indentY, $size_mini, $size_mini, $size_square, $size_square);

imagejpeg($dst);
imagedestroy($src);
imagedestroy($dst);
?>[/php]
!ВАЖНО: пример выше нормально работает только с jpg-изображениями.

Выводим картинку, index.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<img src="image.php" />
</body>
</html>


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
kolesgan
kolesgan
Topic Starter сообщение 31.5.2011, 16:50; Ответить: kolesgan
Сообщение #8


Спасибо! то что надо!!!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 31.5.2011, 22:30; Ответить: ZiTosS
Сообщение #9


kolesgan, пожалуйста, всегда рад помочь. Старайтесь в голове прокручивать примерную реализацию, хорошо помогает. Затем пишем алгоритм словестный, затем можно набросать структуру и радуемся :(
Тема закрыта.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) как заслужить право на создание новой темы?
7 writer80 2208 12.3.2024, 22:54
автор: Lumex
Открытая тема (нет новых ответов) <Braga/> Создание Telegram-ботов, web-приложений, крипто-бирж, сайтов.
2 newbraga 1778 10.3.2024, 22:04
автор: newbraga
Открытая тема (нет новых ответов) СОЗДАНИЕ : / САЙтЫ / ЛЕНДЫ / БОТЫ ТГ / ВАЙТЫ / КРЕО / СОФТЫ / ДИЗАЙН [PHP, JS, HTML/CSS] и другое
5 CULA 3402 19.12.2023, 18:55
автор: CULA
Открытая тема (нет новых ответов) Создание и ведение аккаунтов в соцсетях ("В контакте"/Telegram)
Услуги от профессионального журналиста и SMM-менеджера
2 AvtorXXX 1708 13.11.2023, 23:47
автор: AvtorXXX
Открытая тема (нет новых ответов) Создание информационной площадки с доской объявлений
1 xweb 2062 16.1.2023, 16:25
автор: xweb


 



RSS Текстовая версия Сейчас: 20.4.2024, 9:32
Дизайн