Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объединение изображений 
:(
    Опции темы
CalmNad
Дата 13.3.2008, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 13.3.2008

Репутация: нет
Всего: нет



Доброго времени суток,

Такая проблема:
 - По текстовым командам выполняю рисование примитивов.
 - Примитивы (прямоугольник, линия, ...) могут иметь свою прозрачность
 - При объединении примитивов в общее изображение - последнее постепенно становится ну совсем прозрачным smile :(
 - Как я понимаю проблему - альфа канал складывается и более старые (первые) изображения становятся светлее.

Буду благодарен за советы, и очень благодарен за код smile. Если есть иные (принципиально) пути решения - готов выслушать/увидеть советы/примеры (например отрисовка с заданием прозрачности для каждого элемента на одном холсте).

Код следующий:

Код

def ImgDrawShape(resIm, command, cnt):
    tmpIm = Image.new('RGBA', (484, 382))
    ...отрисовка на tmpIm...
    resIm = ImgMerge(resIm, tmpIm, command['opacity'])
    return resIm

def ImgReduceOpacity(im, opacity):
    assert opacity >= 0 and opacity <= 1
    if im.mode != 'RGBA':
        im = im.convert('RGBA')
    alpha = im.split()[3]
    alpha = ImageEnhance.Brightness(alpha).enhance(opacity)
    im.putalpha(alpha)
    return im

def ImgMerge(dst, src, opacity=1):
    if opacity < 1:
        src = ImgReduceOpacity(src, opacity)
    dst.paste(src, (0,0), src)
    return dst


Это сообщение отредактировал(а) CalmNad - 13.3.2008, 21:24
PM MAIL   Вверх
Goganchic
Дата 14.3.2008, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 678
Регистрация: 18.6.2004

Репутация: 1
Всего: 5



CalmNad, можешь написать более подробно, например указать что используешь для работы с графикой и т.п.
PM Jabber   Вверх
pythonwin
Дата 17.3.2008, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



Цитата(Goganchic @  14.3.2008,  19:48 Найти цитируемый пост)
CalmNad, можешь написать более подробно, например указать что используешь для работы с графикой и т.п. 

думаю CalmNad, использует PIL, т.к.:
Код

>>> import PIL, PIL.Image
>>> tmpIm = PIL.Image.new('RGBA', (484, 382))
>>> tmpIm
<PIL.Image.Image instance at 0xb7d701cc>


Это сообщение отредактировал(а) pythonwin - 17.3.2008, 12:04
PM WWW GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0574 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.