Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2009-05-04 09:47:48

v01d
Модератор
Зарегистрирован: 2008-10-14
Сообщений: 179
Рейтинг :   
Сайт

Другой цвет фона при создании миниатюры

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

Вопрос: Как указать GD что для создания миниатюры нужно использовать другой цвет фона?
Спасибо.


Продвигай NGCMS,
скачай статью и на свой сайт повесь.
Геленджик - лучший отдых на Черном море

Не в сети

#2 2009-05-04 12:21:10

insider
Участник
Зарегистрирован: 2009-01-25
Сообщений: 229
Рейтинг :   35 
Сайт

Re: Другой цвет фона при создании миниатюры

Если я правильно понял что требуется, то это здесь:
/engine/includes/classes/upload.class.php

		// Resize image
		imagefill($newimg,0,0,'0xFFFFFF');

Не в сети

#3 2009-05-04 15:20:08

v01d
Модератор
Зарегистрирован: 2008-10-14
Сообщений: 179
Рейтинг :   
Сайт

Re: Другой цвет фона при создании миниатюры

Спасибо..
Тока немного ниже

$background		=	array("r" => 255, "g" => 255, "b" => 255);

Продвигай NGCMS,
скачай статью и на свой сайт повесь.
Геленджик - лучший отдых на Черном море

Не в сети

#4 2009-05-04 15:56:19

insider
Участник
Зарегистрирован: 2009-01-25
Сообщений: 229
Рейтинг :   35 
Сайт

Re: Другой цвет фона при создании миниатюры

Это цвет, в который будет переходить тень

Не в сети

#5 2009-05-04 19:31:38

v01d
Модератор
Зарегистрирован: 2008-10-14
Сообщений: 179
Рейтинг :   
Сайт

Re: Другой цвет фона при создании миниатюры

А то что ты указал у меня цвет фона не меняет. neutral

Изменено v01d (2009-05-04 19:32:09)


Продвигай NGCMS,
скачай статью и на свой сайт повесь.
Геленджик - лучший отдых на Черном море

Не в сети

#6 2009-05-04 23:04:01

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Другой цвет фона при создании миниатюры

v01d, возможно тебе поможет вот это (начальная заливка "холста" для миниатюры):

	// Resize image
	imagefill($newimg,0,0,'0xFFFFFF');
	imagecopyresized($newimg, $img, 0,0,0,0,$newX, $newY, $origX, $origY);

Оно?

Не в сети

#7 2009-05-05 11:59:06

v01d
Модератор
Зарегистрирован: 2008-10-14
Сообщений: 179
Рейтинг :   
Сайт

Re: Другой цвет фона при создании миниатюры

vitaly пишет:

v01d, возможно тебе поможет вот это (начальная заливка "холста" для миниатюры):

	// Resize image
	imagefill($newimg,0,0,'0xFFFFFF');
	imagecopyresized($newimg, $img, 0,0,0,0,$newX, $newY, $origX, $origY);

Оно?

От этого я и начал копать.

Меняю

imagefill($newimg,0,0,'0xFFFFFF'); на imagefill($newimg,0,0,'0x000000');

Должен быть черный фон, а он белый какбудто не менял.

Чего я не понимаю?
Делаю так:

// Calculate thumb size and create an empty object for it

		$newX = round($origX / $factor);

		$newY = round($origY / $factor);



		$newimg = imagecreatetruecolor($newX, $newY);



		// Resize image

		$mycolor = imagecolorallocate($newimg, 116, 192, 220);
		imagefill($newimg,0,0, $mycolor);

		imagecopyresized($newimg, $img, 0,0,0,0,$newX, $newY, $origX, $origY);

Без изменений, фон чисто белый.
Интересно а прозрачный фон замутить реально?

Изменено v01d (2009-05-05 12:01:45)


Продвигай NGCMS,
скачай статью и на свой сайт повесь.
Геленджик - лучший отдых на Черном море

Не в сети

#8 2009-05-05 14:16:38

insider
Участник
Зарегистрирован: 2009-01-25
Сообщений: 229
Рейтинг :   35 
Сайт

Re: Другой цвет фона при создании миниатюры

Я не понял о каком фоне речь идет )
Сделай скрин, пожалуйста, и выдели лично для меня там фон )

Не в сети

#9 2009-05-05 14:35:18

SeeD
Участник
Откуда Москва
Зарегистрирован: 2008-10-13
Сообщений: 158
Рейтинг :   
Сайт

Re: Другой цвет фона при создании миниатюры

видимо речь идет об обработке прозрачных гифок и PNG`шек. в исходнике там прозрачно, на миниатюре - фон белеет.


делай, что надо и будь, что будет

Не в сети

#10 2009-05-05 14:44:06

insider
Участник
Зарегистрирован: 2009-01-25
Сообщений: 229
Рейтинг :   35 
Сайт

Re: Другой цвет фона при создании миниатюры

Тогда может

imagefill($newimg,0,0,'0xFFFFFF');

и вовсе закомментить?

Не в сети

#11 2009-05-06 00:50:35

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Другой цвет фона при создании миниатюры

v01d, всё понятно.
С помощью infinity237 проблему удалось локализовать.

Скачай из SVN обновлённую версию файла engine/includes/classes/upload.class.php - в нём для уменьшенной картинки сохраняются параметры прозрачности.

Не в сети

#12 2009-05-06 12:18:23

v01d
Модератор
Зарегистрирован: 2008-10-14
Сообщений: 179
Рейтинг :   
Сайт

Re: Другой цвет фона при создании миниатюры

Спасибо конечно, но я немного о другом.
alba.jpg

Вот здесь, хочется иметь возможность настроить цвет фона под тенью.
Чтобы он соответствовал фону страницы.
Для белой страницы, все идеально.

Можно конечно обойти используя css рамку и не использовать тень.

Изменено v01d (2009-05-06 12:22:08)


Продвигай NGCMS,
скачай статью и на свой сайт повесь.
Геленджик - лучший отдых на Черном море

Не в сети

#13 2009-05-06 12:26:06

insider
Участник
Зарегистрирован: 2009-01-25
Сообщений: 229
Рейтинг :   35 
Сайт

Re: Другой цвет фона при создании миниатюры

Ну так это и есть цвет, в который переходит тень smile
Просто, т.к. в тех уголках тени нету, они заливаются этим цветом целиком

Не в сети

#14 2009-05-06 13:30:36

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Другой цвет фона при создании миниатюры

v01d, вот теперь я тебя понял. Мы подумали, что у тебя проблема с прозрачными картинками.
На самом деле есть вариант получше - в случае PNG эти области можно вообще делать прозрачными! Как такая идея?

Тебе же вот это нужно (как мне кажется):

		if ($param['shadow']) {
			$newX			=	$origX + 5;
			$newY			=	$origY + 5;
			$newimg			=	imagecreatetruecolor($newX, $newY);

- создаётся пустая картинка на 5 пикселов больше по вертикали и горизонтали (для тени).
Тебе нужно просто добавить заливку картинки нужным фоном.
После этих строк попробуй добавить:

		imagefill($newimg,0,0,'0xFFFFFF');

а вместо 0xFFFFFF - проставь нужный тебе цвет.

Не в сети

#15 2009-05-06 13:38:42

insider
Участник
Зарегистрирован: 2009-01-25
Сообщений: 229
Рейтинг :   35 
Сайт

Re: Другой цвет фона при создании миниатюры

Там уже есть заливка, достаточно отредактировать

			$background		=	array("r" => 255, "g" => 255, "b" => 255);

что и было в 3-ем сообщении этой темы

Не в сети

#16 2009-05-06 14:10:35

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Другой цвет фона при создании миниатюры

insider, это заливка для отрисовки тени.
И, как видно ниже, заливка начинается со смещения X=5, Y=5. Т.е. как раз и остаются те самые белые квадратики, про которые говорит v01d:

				@imagefilledrectangle($newimg, 5, 5, $newX - $i, $newY - $i, $colors[$i]);

При этом изменение цветов в указанном тобой месте может ещё и сам градиент-тень подпортить.

Не в сети

#17 2009-05-06 14:26:06

insider
Участник
Зарегистрирован: 2009-01-25
Сообщений: 229
Рейтинг :   35 
Сайт

Re: Другой цвет фона при создании миниатюры

Квадратиков не останется, чуть выше есть строка:

imagefilledrectangle($newimg, 0,0, $newX, $newY, $colors[0]);

Измененный градиент смотрится на фоне только лучше. Создается ощущение псевдо-прозрачности. Все-таки это тень.

edit:
Думаю, разница видна прекрасно:
http://ipicture.ru/uploads/090506/29625/zdQO1Op2u1.png
Слева вариант с "подпорченным" градиентом

Изменено insider (2009-05-06 14:37:24)

Не в сети

#18 2009-05-06 17:08:59

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Другой цвет фона при создании миниатюры

insider, действительно, ты прав. Спасибо!

Не в сети

#19 2009-05-06 21:34:09

v01d
Модератор
Зарегистрирован: 2008-10-14
Сообщений: 179
Рейтинг :   
Сайт

Re: Другой цвет фона при создании миниатюры

Ага, значит я в правильном направлении копал smile
Всем спасибо за помощь.


Продвигай NGCMS,
скачай статью и на свой сайт повесь.
Геленджик - лучший отдых на Черном море

Не в сети

Подвал раздела

Работает на FluxBB