Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: GrayPicture в ImageBox Добавлено: 23.11.06 02:11  

Автор вопроса:  Vladimir | ICQ: 423-156-001 
Как переделать рисунок в серый чвет и показать в ImageBox? Может, кто подскажет.

Ответить

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

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


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 23.11.06 02:34
Вычисли среднее арифметическое из R, G и B-компонент для каждого пиксела изображения и назначь полученное число всем трем.

Ответить

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



ICQ: 423-156-001 

Вопросов: 6
Ответов: 6
 Профиль | | #2 Добавлено: 23.11.06 02:38
а как это сделать не прибегая к picturebox

Ответить

Номер ответа: 3
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #3
Добавлено: 23.11.06 15:41
GetPixel/SetPixel

Ответить

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


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #4
Добавлено: 23.11.06 19:26
Загружай и обрабатывай картинку в памяти

Ответить

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



ICQ: 423-156-001 

Вопросов: 6
Ответов: 6
 Профиль | | #5 Добавлено: 23.11.06 21:54
у ImageBox нет дескриптора устройства hDc. Так что getPixel/SetPixel непрокатят (покрайне мере в VB6). притом что после сворачивания рисунок исчезает. А на счет того, что бы загружать картинку в память - какой клас больше подойдет для этого? у stdPicture нет метода чтобы взять один одтельный пиксел,( для разложить по составляющим RGB, нахождения среднего, и т.д.)

Ответить

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


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #6 Добавлено: 23.11.06 22:25
http://www.vbnet.ru/forum/show.aspx?id=120908

Ответить

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



ICQ: 423-156-001 

Вопросов: 6
Ответов: 6
 Профиль | | #7 Добавлено: 24.11.06 21:49
Dim pic As New StdPicture
Dim pic1 As New StdPicture
Dim tmpColor As Long
appdir = App.Path
If Right(appdir, 1) <> "\" Then appdir = appdir + "\"
Set pic = LoadPicture(appdir + "1.ico";)

Myhdc = CreateCompatibleDC(0&;)
SelectObject Myhdc, pic.Handle

Myhdc1 = CreateCompatibleDC(0&;)
SelectObject Myhdc1, pic1.Handle

h = pic.Height
w = pic.Width
For i = 0 To h
For j = 0 To w
tmpColor = GetPixel(Myhdc, i, j)
    rgbcolor = GetRGB(tmpColor, r, g, b)
    sr = CByte((r + g + b) / 3)
    colorrr = RGB(sr, sr, sr)
SetPixel Myhdc1, i, j, colorrr
Next j, i
Set Image1.Picture = pic1

Все равно картинка не отображается. Где я неправильно сделал?

Ответить

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


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #8 Добавлено: 26.11.06 20:39
http://www.yandex.ru/yandsearch?rpt=rad&text=ImgProcess

у него есть класс - cPictureEx

В нем отлаженное, довольно быстрое конвертирование в Gray Scale...

Ответить

Страница: 1 |

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



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