| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Изменение глубины цвета |
| Автор: Иннокентий 27.2.2006, 04:21 | ||
| Первый вопрос: «Как полноцветную картинку с расширением (*.bmp) перевести из 16 миллионов цветов в - 256 цветов или 128 или в 64 или 32, как это, к примеру, происходит в стандартной Windows программе “MSPAINT.EXE". Когда при записи картинки выставляешь 256-цветный рисунок (*.bmp; *.dib)» Второй вопрос: «А также как программно найти и выставить между двумя разными по цвету точками соответствующий их единый полутон «этих двух точек». Третий вопрос: «Можно ли программно получить 16 миллионов цветов только серого цвета. И чтобы при этом полутона не повторялись. Я использую программный метод: ‘--------------------
‘-------------------- Но, этот код позволяет создать неповторяющихся всего 256 черно-белых тонов . Заранее Вам БЛАГОДАРЕН. С уважением к Вам, Иннокентий |
| Автор: cardinal 27.2.2006, 15:14 |
| Модератор: Пожалуйста, один топик - один вопрос. Вот это почитай: http://forum.vingrad.ru/index.php?showtopic=84616 |
| Автор: Иннокентий 1.3.2006, 19:05 |
| Мир Вам! |
| Автор: cardinal 1.3.2006, 20:53 |
| И Вам Мир! |
| Автор: Иннокентий 1.3.2006, 21:03 | ||
Не могли бы Вы мне показать все это в программном коде VB |
| Автор: Иннокентий 2.3.2006, 02:40 |
| Dimkin [email protected] Цитата: Dimkin «ну так ессесено он и будет создавать 256. у Вас ведь цикл до 255!или я что то не так понял? я на самом деле больше по БД специализируюсь.как таковые проги не пишу. а если не секрет для чего это нужно?». Мир Вам! Вы правильно подметили, то, что когда я увеличиваю Цикл и делаю его больше 256, то он почему-то начинает просто дублировать эти же серые цвета из 256. Общее количество меняется, а новых черно-белых тонов нет, чтобы они могли выйти за пределы все того же 255 цикла. А для чего нужно скажу: я хочу, построит программу, чтобы с ее помощью можно было из черно-белого изображения переводить в цветное. Вот весь секрет, хотя в этой области я и достиг весьма больших результатов, но стал спотыкаться на обычных программных кодах. V.Basic ПК, Так как взятые за основу методы построения света неверные изначально, то и построенная разработчиками империя света похоронила под собой преобразование черно белое изображение в цвет. Я создал программу и ей уже показал людям, что можно программно преобразовывать черно-белое изображение в цвет без всяких искажений и подмен, и тем видел изумление людей которые до этого говорят: «Это невозможно, кроме как раскрашивать черно-белое изображение «фото» в ручную в «Photoshop»». Но, моя программа работает только в диапазоне 256 цветов и я не могу пока обычными методами выскочить за пределы 256 цветов, чтобы получить полноценную картину из более 16 миллионов цветов. Но это трудности лишь технические, по этому думаю в ближайшее время в сеже поставить в этом щекотливом деле большую жирную точку. |
| Автор: cardinal 2.3.2006, 04:49 |
| Может это поможет http://www.activevb.de/tipps/vb6tipps/tipp0630.html Ну и вот еще пример http://www.activevb.de/tipps/vb6tipps/tipp0633.html |
| Автор: Naghual 2.3.2006, 10:15 | ||
А зачем изобретать велосипед? http://www.recolored.com/ |
| Автор: Иннокентий 3.3.2006, 21:33 |
| «Cardinal»,спасибо за весьма интересные ссылки. Есть у Вас еще, что ни будь подобное. Я профессионально занимался фото как фото художник. И мне часто приходилось по работе раскрашивать старые черно-белое фото. И скажу, что руками раскрасить фото весьма проблематично, да и выглядит весь этот раскрас весьма уродливо. Это для обывателя круто: была черно-белая, и вдруг стало «цветной». Вот вы сказали: «Программно перевести из черно-белого в цвет не возможно»!. Нет, это уже возможно и весьма на хорошем уровне, пусть пока не на все сто, но уже программно это возможно!. И я в будущем покажу вам, это чудо (программу), как только доведу все до ума. Поэтому я прошу у вас всевозможные разные примеры по графики, особенно все, что связано с преобразованием в цветов. Новый подход и разработанная на основе его технология «цвета» в будущем позволит перевести всю технику из трех цветного в черно-белый цвет. Этот способ даст большую скорость передачи информации на расстоянии. При передачи только одной цветной картинки приходится передавать три с разными цветами (Красный, Зеленый, Синий). А теперь достаточно будет отправить только одну черно-белую фото, и результат будет тот же, а эффект колоссальный. |
| Автор: Exception 3.3.2006, 22:08 |
| Но тогда ухудшится качество. Ведь это понятно теоретически. |
| Автор: cardinal 4.3.2006, 02:41 | ||
я? |
| Автор: Иннокентий 4.3.2006, 07:46 |
| Цитата: Exception «Но тогда ухудшится качество. Ведь это понятно теоретически». Мир Вам! Нет, не ухудшится качество, а наоборот, уже сто процентная передача цвета, из черно-белого в цвет и на оборот. |
| Автор: Иннокентий 5.3.2006, 08:00 | ||||
Извини я был не совсем в внимателен!… |
| Автор: Naghual 6.3.2006, 10:34 |
| Иннокентий я не согласен с вами. Данная технология только ухудшит качество изображения. |
| Автор: Иннокентий 6.3.2006, 20:14 | ||
Посмотри где тут искажение? |
| Автор: Naghual 6.3.2006, 20:47 |
| Ок. Сделай то-же самое с фоткой. |
| Автор: Иннокентий 7.3.2006, 15:01 | ||
Попробуй вот этот файл: 0098-023-0.EXE |
| Автор: Akina 7.3.2006, 15:45 | ||||||||||
Я что-то не понимаю - куда копья ломаем?
256 градаций серого - это предел. То есть в файле можно настрогать и 16 миллионов несовпадающих оттенков (создать собственную палитру) - но вывести их на экран или печать не получится просто потому, что нет такого видеорежима или режима печати. Да и нечем - нет программных средств работы с такой палитрой и аппаратных средств ее отображения. Соответственно однозначное преобразование 256 градаций серого (8 бит на точку) в полноцветное (24-битное) - задача невозможная. Будут горы вариантов, каждый из которых - совершенно легальный. Хотя при этом возможно решение задачи выбора вырианта.
Понятно что простейший вариант - это полусумма ака среднее арифметическое по каждому цветовому компоненту. Кстати, это подходит и для градаций серого. Впрочем простейший - не значит правильный.
Ну это совсем просто - откусывание младших битов каждой цветовой составляющей. С округлением к ближайшему.
Правильно, остальные сочетания - не серые. Цветные.
Нет, не приходится передавать три картинки. Передается одна. 24 бита на точку. Вы предлагаете упаковать их в 8 бит и на другой стороне снова развернуть. Так вот - упаковать можно, а развернуть БЕЗ ПОТЕРИ - не получится. Копия будет отличаться от оригинала. А если родить формат с 16 миллионами градаций серого - какая разница какие 24 бита передавать, цветные или серые? размер тот же. Не зря были рождены упакованные форматы - начиная от RLE и кончая JPG. Причем обрати внимание - где допустимо управление степенью сжатия, непременно указывается, что чем выше степень сжатия, тем хуже качество копии. А "и рыбку съесть, и косточкой не подавиться" - это абсолютный и невозможный импоссибль.Каждый, кто заявлял об успехе на подобного рода пути, по ближайшем рассмотрении оказывался шарлатаном, хорошо если заблуждающемся, а не сознательным... |
| Автор: Иннокентий 8.3.2006, 08:29 |
| Цитата(Иннокентий @ 27.2.2006, 05:21): «Как полноцветную картинку с расширением (*.bmp) перевести из 16 миллионов цветов в - 256 цветов или 128 или в 64 или 32». Цитата: Akina «Ну это совсем просто - откусывание младших битов каждой цветовой составляющей. С округлением к ближайшему». Мир вам! Научи, мня как это сделать правильно в программном коде на Visual Basic. Покажи простенький пример, если у тебя такой имеется. Цитата: Akina «256 градаций серого - это предел. То есть в файле можно настрогать и 16 миллионов несовпадающих оттенков (создать собственную палитру) - но вывести их на экран или печать не получится просто потому, что нет такого видеорежима или режима печати. Да и нечем - нет программных средств работы с такой палитрой и аппаратных средств ее отображения». Я это и сам понял, оттого и задал Вам этот щекотливый вопрос, а в друг!... Цитата: Akina «Соответственно однозначное преобразование 256 градаций серого (8 бит на точку) в полноцветное (24-битное) - задача невозможная. Будут горы вариантов, каждый из которых - совершенно легальный. Хотя при этом возможно решение задачи выбора варианта». Нет ничего невозможного, даже иногда мертвые встают из гробов своих, а мы не можем исправить даже ошибки дел рук своих. Посмотри на маленькое семя, оно такое крошечное, но из него вырастает больное полноценное дерево. Поэтому так говорить: «задача невозможная», в нашем деле не уместно. Цитата: Akina «Нет, не приходится передавать три картинки. Передается одна. 24 бита на точку. Вы предлагаете упаковать их в 8 бит и на другой стороне снова развернуть. Так вот - упаковать можно, а развернуть БЕЗ ПОТЕРИ - не получится. Копия будет отличаться от оригинала. А если родить формат с 16 миллионами градаций серого - какая разница какие 24 бита передавать, цветные или серые? размер тот же». Неважно три картинки, или три раза по 8-(24),суть одно, у нас есть в наличии только 8 полноценных бит, но и в этом уже достаточно, чтобы можно было найти то самое умное решение. Помогите мне с решением простых примерах, а я Вам помогу решить весьма сложные. Начни с этого: Цитата: Akina «Ну это совсем просто - откусывание младших битов каждой цветовой составляющей. С округлением к ближайшему». Цитата: Akina «Каждый, кто заявлял об успехе на подобного рода пути, по ближайшем рассмотрении оказывался шарлатаном, хорошо если заблуждающемся, а не сознательным...». |
| Автор: Иннокентий 8.3.2006, 20:48 | ||
| Это программа позволяет найти, между двух разных точек по цвету общую среднюю по цвету точку.
Можете подсказать мне иной вариант? Как найти между двумя известными точками, разными по цвету, несколько промежуточных точек в цикле? Буду Вам весьма благодарен. Иннокентий <[email protected]> |
| Автор: Akina 9.3.2006, 10:17 | ||||||
Функция преобразования RGB в Color имется - RGB(red, green, blue). Обратной нет, но ее можно создать, вернее не функцию, а процедуру - ибо нужно получить массив либо 3 переменных. А заодно функцию выделения нужного компонента
А затем
|
| Автор: SCINER2 10.3.2006, 15:33 | ||
В десять раз быстрее вышеперечисленных методов!
|