LINUX.ORG.RU
ФорумTalks

господа, генерация рамок!


0

0

Нашёл одну интеренсную проблему, которую необходимо решить. Нужно наложить на изображение рамку. Загрузкой изображения будет заниматься какой-нибудь тулкит, поэтому этот момент не важен. Представим, есть изображение неизвестных размеров W x H. Нужно наложить рамку (как в CompuPic Pro). Как бы это сделать, и где об этом почитать ?

Проблемы:

1. Разные изображение требуют рамок разных размеров. Если использовать рамку в виде растрового изображения, нужно её перед наложением отмасштабировать. Артефакты неизбежны.
2. Ширина рамки должна варьироваться. См 1.


Например, можно попробовать поюзать векторную. Или собирать из мелких паттернов. Сама отрисовка - нетрабла. Згружаеш нужную те картинку в например pixmap размеров на величину рамок большую картинки, в этот pixmap вкруг рисуеш рамку и шлёпаеш всё сместе в потребный drawable.

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

>>Например, можно попробовать поюзать векторную

Наврядли прокатит. Пример - резная рамка, как на картинах. В векторной форме боюсь даже представить... :)

>> Или собирать из мелких паттернов

Всмысле, поподробней! :)

Keiko
() автор топика
Ответ на: комментарий от Keiko

> Ручками, господа, ручками. На С/C++.

На хера? Мсье извращенец, да?

Ну, на крайняк можно popen("gimp --batch", ...") ;)

anonymous
()
Ответ на: комментарий от Keiko

Если резная, с многими мелкими элементами, тогда конечно вряд ли, хотя тоже можно постараться.

А из паттернов - делаеш набор мелких картинок, у которых у всех один край картинки является продолжением другого края, типо как на волпаперы в кде ставят мелкие картинки "черепицей". Края отдельной картинки не видно, и получяется повторяющийся узор из мелких одинаковых элементов. См. например "Blue Angle Swirl" и прочее в волпаперах кде стандартной поставки.

bugmaker ★★★★☆
()
Ответ на: комментарий от anonymous

А ты увереный, что на клиентском компе обязательно будет установленый гимп? Или из-за простой функции предлагаеш весь его в зависимости включить?

bugmaker ★★★★☆
()

Прошу уважаемых участников дискуссии пройти в Development.

Obidos ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.