![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Devider |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 24.12.2004 Репутация: нет Всего: нет |
Здравствуйте!
Суть проблемы вот в чем: необходимо из цветной картинки (например, PixelFormat.Format24bppRgb) сделать ее же чернобелый аналог (например, PixelFormat.Format16bppGrayScale). По скольку готовых решений не нашел, сел изобретать велосипед сам. Создаю такой же Bitmap по размеру:
Дальше надеялся на
Но вылетает ArgumentException {"Parameter is not valid."} на попытку этот битмап нарисовать. И даже такой код не работает
хотя это работает:
Почему?? Это сообщение отредактировал(а) Devider - 20.2.2006, 18:02 |
||||||||
|
|||||||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
Готовое решение найдешь по слову dither на этом форуме (в поиске поищи вместе с моим ником) или в том же googl'e... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| Devider |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 24.12.2004 Репутация: нет Всего: нет |
По форуму ничего не нашел, кроме этого поста! =)
Мона ссылочку? |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| Devider |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 24.12.2004 Репутация: нет Всего: нет |
Просто убрать цвета, это можно. Допустим есть PictureBox pbDoc.
Из примера оба мессаджбокса покажут, что формат не меняется, в т.ч. не смотря на строку bmData.PixelFormat = PixelFormat.Format16bppGrayScale; В дельфи и в ВБ, сорри, не силен.. =( Кроме того, так и не понял, пример из первого поста (Bitmap b1 = new Bitmap(100, 100, PixelFormat.Format16bppGrayScale); pictureBox1.Image = b1; ) почему не работает... Наверное, это основной вопрос: как работать в .NET с PixelFormat.Format16bppGrayScale. Размер файла, если ч/б картинку сохранить, изменится но сравнению с цветной, но незначительно, и то, сильно подозреваю, в этом заслуга исключительно JPEG... Хелп!!! |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
А что тебе говорят слова палитра? Структура файла? Ты знаешь как выглядит точка в твоем файле? Ну так вперед - читать!
И еще определись, что тебе нужно ч/б картинка или все таки grayscale. Тут есть некая разница... (а в размере не некая, а очень ощутимая!) -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| Devider |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 24.12.2004 Репутация: нет Всего: нет |
Оу, йес, говорят! И точка как выглядит знаю! Я вот не знаю тока как с grayscale работать. А именно это мне и надо. А посылать меня попрошу не вообще, а по конкретному адресу, в т.ч. и читать. =)
|
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Вот готовое решение:
-------------------- ![]() |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |