Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Работа с графикой на VB.NET Добавлено: 30.07.08 14:57  

Автор вопроса:  Yanex | Web-сайт: Progr.Do.am | ICQ: 387761649 
Долгое время кодил на VB6, для работы с рисунками использовал API-шные функции BitBlt и AlphaBlend. Из MSDN узнал, что в дотнетах апишки уже никто не юзает, теперь в моде GDI+. Больше от этой "всемогущей базы знаний Microsoft" я толком ничего не добился. Может я искал плохо, но из всех эффектов для работы с изображениями нашел только функции поворота, зеркального отображения и еще множество разного хлама.

Вызвать API также не удается: все Long переделал в Integer, hDC - в IntPtr. hDC беру из e.Graphics при событии Paint. Пишет - "неверный параметр". Может, еще что-то изменить надо?

Так вот, может у кого-нить уже валяется готовый пример блендинга?

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #1 Добавлено: 30.07.08 17:18
Смотри System.Drawin, там почти все есть.

ПО теме, нужно хотя бы код увидеть, так сложно говорить где что происходит...

Ответить

Номер ответа: 2
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #2 Добавлено: 30.07.08 21:15
Ты, конкретно, опиши что ты хочешь сделать

Ответить

Номер ответа: 3
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #3 Добавлено: 30.07.08 21:20
Поищи по форуму тему GDI+ годовалой давности.. там много чего интересного есть

Ответить

Номер ответа: 4
Автор ответа:
 Yanex



ICQ: 387761649 

Вопросов: 32
Ответов: 169
 Web-сайт: Progr.Do.am
 Профиль | | #4
Добавлено: 31.07.08 10:38
Ты, конкретно, опиши что ты хочешь сделать


Надо реализовать некоторые эффекты плавной смены изображений, например: затухание, попиксельное отображение, "переливание" (постепенное изменение одной картинки на другую). Все это дело можно увидеть во многих программках, реализующих слайд-шоу.

Вот это все дело я и хотел блендить.

С затуханием я вчера уже справился: надо взять черную большую кисть (размером с битмап), с 0<Alpha<255. Получается неплохо, рисует довольно быстро. Единственное меня добивает - то, что рисовать можно только в Picture_Paint. Может, кто-то знает, как рисовать из других процедур и функций (не используя Picture.Refresh)?

А вот как "соединить" две картинки? Это надо кисть с текстурой юзать, что ли?

Ответить

Номер ответа: 5
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #5 Добавлено: 31.07.08 17:23
Рисовать можно где угодно
Using Gr = PictureBox.CreateGraphics и пошел...

Ответить

Номер ответа: 6
Автор ответа:
 Yanex



ICQ: 387761649 

Вопросов: 32
Ответов: 169
 Web-сайт: Progr.Do.am
 Профиль | | #6
Добавлено: 31.07.08 17:48
А... Вот оно как. А я пытался делать так:

в классе - dim gr as graphics

в Image_Paint(...) - gr = e.graphics

нифига не получилось.


Кстати, дополнение к изначальному вопросу: могут ли лейблы быть прозрачными? Не так, как Color.Transparent, а нормально? Или по-любому придется рисовать? То же самое - и с рисунками.

Ответить

Номер ответа: 7
Автор ответа:
 Yanex



ICQ: 387761649 

Вопросов: 32
Ответов: 169
 Web-сайт: Progr.Do.am
 Профиль | | #7
Добавлено: 31.07.08 17:50
Кстати, смотрел справку (MSDN). Там описывается метод ApplyEffect (как-то так), который находится в классе Bitmap. Но его я там не обнаружил. Как и других классов, например Blur. Куда все делось?

Ответить

Номер ответа: 8
Автор ответа:
 Viper



ICQ: 249094859 

Вопросов: 0
Ответов: 310
 Профиль | | #8 Добавлено: 01.08.08 15:24
Оно не делось, оно до реализации не дошло. Непосредственно в GDI+ эти методы есть.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам