Страница: 1 |
Страница: 1 |
Вопрос: Работа с графикой на VB.NET
Добавлено: 30.07.08 14:57
Автор вопроса: Yanex | Web-сайт:
Долгое время кодил на 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-сайт:
Профиль | | #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-сайт:
Профиль | | #6
Добавлено: 31.07.08 17:48
А... Вот оно как. А я пытался делать так:
в классе - dim gr as graphics
в Image_Paint(...) - gr = e.graphics
нифига не получилось.
Кстати, дополнение к изначальному вопросу: могут ли лейблы быть прозрачными? Не так, как Color.Transparent, а нормально? Или по-любому придется рисовать? То же самое - и с рисунками.
Номер ответа: 7
Автор ответа:
Yanex
ICQ: 387761649
Вопросов: 32
Ответов: 169
Web-сайт:
Профиль | | #7
Добавлено: 31.07.08 17:50
Кстати, смотрел справку (MSDN). Там описывается метод ApplyEffect (как-то так), который находится в классе Bitmap. Но его я там не обнаружил. Как и других классов, например Blur. Куда все делось?
Номер ответа: 8
Автор ответа:
Viper
ICQ: 249094859
Вопросов: 0
Ответов: 310
Профиль | | #8
Добавлено: 01.08.08 15:24
Оно не делось, оно до реализации не дошло. Непосредственно в GDI+ эти методы есть.