Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Opacity и Opacitymask 
:(
    Опции темы
Moby
Дата 22.10.2008, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Чем отличаются? В книге не написано а в нете не могу найти. 

Заранее спасибо и сорри за простой вопрос.

Это сообщение отредактировал(а) Moby - 22.10.2008, 13:16
PM MAIL ICQ   Вверх
likegift
Дата 22.10.2008, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Moby @ 22.10.2008,  13:16)
Чем отличаются? В книге не написано а в нете не могу найти. 

Заранее спасибо и сорри за простой вопрос.

имхо,
Opacity - прозрачность всего элемента.
Opacitymask - прозрачность для части элемента, задаваемая маской.

апд: кстати, с помощью Opacitymask мне понравилось обрезать Textblock-и, которые при размещении на канве теряли свое св-во изменения ширины.


Это сообщение отредактировал(а) likegift - 23.10.2008, 17:23
PM MAIL   Вверх
Kefir
Дата 22.10.2008, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

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



Moby, могу добавить, что очень хорошее объяснение масок дано в МСДН
PM MAIL WWW Skype   Вверх
Moby
Дата 30.10.2008, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо, надо было сперва читать, эх лень.

А вот такая задача связанная с прозрачностью.

Вот если я загружу рисунок, который из себя представляет белый фон и рандомно разбросанные точки. 

Теперь мне надо что бы этот элемент, Image, был наложен на другой "рисунок", и что бы точки были с прозрачностью, а вот белый фон вообще не был виден. Просто если сделать веь Image прозрачным то тогда и белый фон то же становиьтся прозрачным и ..... короче вот так. smile

Понятно, что если на рисунке у меня один-два-три элемента, к примеру, квадраты, то можно при помощи OpacityMask сделать то что надо, а когда у меня много точек, то что делать?

Короче как рисунки формата gif для форумов, когда там нарисовано что то на белом фоне, а на форуме отображается только то что нарисовано, а фон игнорируется.
PM MAIL ICQ   Вверх
rooks
Дата 30.10.2008, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код
<Image Width="90" Height="30" Source="someImge1.png">
    <Image.OpacityMask>
        <ImageBrush ImageSource="opacityMask.png"/>
    </Image.OpacityMask>
</Image>

видимо так

Это сообщение отредактировал(а) rooks - 30.10.2008, 23:44
PM MAIL ICQ   Вверх
likegift
Дата 31.10.2008, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Moby @ 30.10.2008,  15:30)
Спасибо, надо было сперва читать, эх лень.

А вот такая задача связанная с прозрачностью.

Вот если я загружу рисунок, который из себя представляет белый фон и рандомно разбросанные точки. 

Теперь мне надо что бы этот элемент, Image, был наложен на другой "рисунок", и что бы точки были с прозрачностью, а вот белый фон вообще не был виден. Просто если сделать веь Image прозрачным то тогда и белый фон то же становиьтся прозрачным и ..... короче вот так. smile

Понятно, что если на рисунке у меня один-два-три элемента, к примеру, квадраты, то можно при помощи OpacityMask сделать то что надо, а когда у меня много точек, то что делать?

Короче как рисунки формата gif для форумов, когда там нарисовано что то на белом фоне, а на форуме отображается только то что нарисовано, а фон игнорируется.

если ты на карту их накладываешь, то не вижу никаких проблем засунуть эти все точку в отдельную канву, которая по-умолчанию, кстати, прозрачная, а потом эту канву сверху положить на свой рисунок.
PM MAIL   Вверх
Moby
Дата 1.11.2008, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Люди добрые, я прошу, объясните теперь как мне сделать следующее.

Вот на GDI+ вот что я делал

Код

private Bitmap image1, image2;

private void CreateBitmaps()
        {
            for (int i = 0; i < 300; i++)
            {
                for (int j = 0; j < 300; j++)
                {
                    if (rnd.Next(1,2) == 1)
                    {
                        image1.SetPixel(i, j, Color.Red);
                        image2.SetPixel(i, j, Color.Blue);
                    }
                }
            }
        }


Как видите я сам создавал этот хаотичный набор точек и "перекидывал" их на БИТМАП, который я использовал как движущийся рисунок.

Как мне вот так же самому в ручную создать БИТМАП в WPF?
PM MAIL ICQ   Вверх
Idsa
Дата 1.11.2008, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Moby, есть несколько способов. Вот самый простой (конвертация BitmapSource в старый-добрый Bitmap): http://blogs.msdn.com/llobo/archive/2007/0...ap-interop.aspx


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Moby
Дата 1.11.2008, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А другой способ? Разве нельзя самому вручную как раньше работать с пикселями?
PM MAIL ICQ   Вверх
rooks
Дата 1.11.2008, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



2Moby пока нашел только такой способ, если найдешь другое решение, отпишись
PM MAIL ICQ   Вверх
Idsa
Дата 1.11.2008, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Moby @  1.11.2008,  18:53 Найти цитируемый пост)
А другой способ? Разве нельзя самому вручную как раньше работать с пикселями? 

А чем Вам метод, который я указал до этого, - не "как раньше". Там в результате преобразования получается Bitmap, с которым можно работать, как раньше.
Другой способ? Второй способ - работать с WriteableBitmap, третий - создать custom BitmapEffect путем написания шейпера (.NET 3.5 SP1).


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Diksa
Дата 14.11.2008, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




Модератор: Сообщение скрыто.

PM MAIL   Вверх
Kefir
Дата 17.11.2008, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

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



Diksa
Модератор: одна тема - один вопрос!
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




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


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

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