Имя: Пароль:
1C
 
Как получить RGB пикселя по его координатам в картинке?
0 Вик
 
29.03.09
11:41
Собственно, сабж.
Требуется перебрать пиксели по строкам и выбрать их цвет.
Подскажите, пожалуйста, кто знает.
Все прочие условия неважны: картинка преобразуется внешними графическими редакторами к любому виду - bmp, jpg ..., даже размер в пикселях можно ввести ручками (впрочем, если возможно получить их программно, неплохо бы)
1 Рэйв
 
29.03.09
11:46
(0)на каком языке?
2 Вик
 
29.03.09
11:47
желательно на 7.7, можно с внешними компонентами
3 Вик
 
29.03.09
11:48
ну в принципе можно и на 8-ке, но у клиента только 7-ка
4 Рэйв
 
29.03.09
11:51
без ВК не полетит. 1С с видеопамятью не работает
5 Рэйв
 
29.03.09
11:52
+(4)всмысле из встроенного языка:) Платформа то конечно работает
6 Вик
 
29.03.09
11:52
Ну я понимаю, что без ВК не обойтись, но какие ВК подойдут?
7 Рэйв
 
29.03.09
11:53
(6)Какие напишешь, такие и подойдут :-)
8 Вик
 
29.03.09
11:55
:-) Спасибо, но наверное кто-то уже делал что-то похожее?
Вот и интересуюсь
9 Рэйв
 
29.03.09
11:56
(8)Может и делал. Только задача настолько специфично, что врядли найдешь. проще сесть самому написать.
А зачем тебе это вообще?
10 Вик
 
29.03.09
11:59
Клиент хочет заняться мозаикой.
Любая картинка преобразуется к виду МхН пикселей, затем нужно вывести цвета.
Напечатать можно, но требуется заказать материал и указать схему закладки
11 Рэйв
 
29.03.09
12:00
(10)имхо, задачка совсем не для 1С.
12 Вик
 
29.03.09
12:03
ага, но прогю в основном на 1С, в прошлом еще визуал фох.
это эпизод, для друзей, поэтому особенно заморачиваться не хотелось...
13 Рэйв
 
29.03.09
12:05
понятно.Но чем писать ВК, лучше уж нормальную прогу написать на любом компилируемом языке.
14 Вик
 
29.03.09
12:06
угу. но прежде чем писать, нелишне и спросить, может оно уже есть? :-)
15 Вик
 
29.03.09
12:06
спасибо за интерес к вопросу :-)
16 Рэйв
 
29.03.09
12:07
дольше будешь спрашивать чем писать:)))
17 Ковычки
 
29.03.09
12:09
а причем тут видеопамять ?
18 Вик
 
29.03.09
12:10
ну в общем то и нипричем, конечно
вопрос о картинке из файла
19 Рэйв
 
29.03.09
12:11
(17)Насколько я знаю, экран хранится в видеопамяти.И чтобы считать атрибуты пикселя смотреть придется туда.
20 Ковычки
 
29.03.09
12:13
(19) а если нету видеовыхода куда смотреть ?
21 Рэйв
 
29.03.09
12:13
всмысле? Да пофигу есть выход или нет.Видеопамять -часть RAM
22 Вик
 
29.03.09
12:13
вовсе никчему. картинку совсем не обязательно отображать на экране.
более того, то, что на экране, это не то, что в файле
картинку из 54х72 пискселя на экране не увидишь так просто, если ее не увеличить
23 Рэйв
 
29.03.09
12:14
а монитор просто ее отображение
24 mikecool
 
29.03.09
12:14
(21) и поэтому отдельные микрухи для видео делают на видеокарте?
25 Рэйв
 
29.03.09
12:15
(22)Птому и говрю, что с видеопамятью придется работать
26 Рэйв
 
29.03.09
12:16
(24) ну память карты она добавочная:) И к ней тоже вполне можно без монитора обратиться
27 mikecool
 
29.03.09
12:17
(25) работаем с оперативной памятью - читаем файл в нее
28 Вик
 
29.03.09
12:18
(27) и далее?...
29 Рэйв
 
29.03.09
12:19
(26) я помоему в (21) и сказал что видеопамять -часть оперативки:)
30 Ковычки
 
29.03.09
12:19
(21) а ты уверен, ято есть вообще видеопамять и вообще видео как класс ?
31 Рэйв
 
29.03.09
12:20
(30)Это просто область ОЗУ, начиная с определенных адресов. Не помню сейчас с какого адреса, но помню что там много F и 8 гдето:))
32 mikecool
 
29.03.09
12:23
(28) я по пикселам картинки не перебирал, на паскале писал конвертилку из бмп в жипег... пользовался кажется классами tbmp и tjpg
33 Вик
 
29.03.09
12:25
по моему все это не нужно.
все должно быть гораздо проще:
Либо на языке или в вк есть какой-то класс картинки с соответствующими методами установить/прочитать свойства,
Либо просто нужно знать формат файла картинки, например бмп, и разбирая прочтенный файл выбираем свойства пикселей
34 trdm
 
29.03.09
12:26
http://ru.wikipedia.org/wiki/BMP
(0) не знаю чем обрабатывать будешь, но мороки много....
35 Вик
 
29.03.09
12:27
(34) вот потому и спросил.
36 Рэйв
 
29.03.09
12:28
(33)Тебе DC нужен на сишке, с него и читать пиксели с экрана будешь.
А если из фала, то там даже не знаю ...гемороя больше.
37 trdm
 
29.03.09
12:29
(35) Плохо спросил. По форматам непонятно.
Откуда читать тоже непонятно, то ли с экрана, то ли с файла картинки.
38 Вик
 
29.03.09
12:29
что есть DC?
39 trdm
 
29.03.09
12:30
дравинг контекст?
40 trdm
 
29.03.09
12:30
или как там его...
41 Вик
 
29.03.09
12:30
(37) А как спросить лучше? (ну что требуется, я вроде бы в конце концов объяснил)
42 Рэйв
 
29.03.09
12:30
(38)Контекст устройства.Класс, работающий с видео
43 trdm
 
29.03.09
12:31
Device Contexts
44 Вик
 
29.03.09
12:31
(42) спасибо, посмотрю
45 trdm
 
29.03.09
12:33
как меня достал этот глюкавый VS МСДН :((((((((((((((((((((((((((((((((((((((((
46 Вик
 
29.03.09
12:34
:-)
47 Рэйв
 
29.03.09
12:34
(45)А что такое?:)..Мне нравится. Правда у меня русская версия:)
48 Кузнецов Максим
 
29.03.09
12:38
(32) +1 Я тоже такое на Паскале делал. уже не помню для чего...
49 trdm
 
29.03.09
12:40
(47) жмакаешь по ссылке, вечные ругательства об ошибках.
50 Рэйв
 
29.03.09
12:48
(49)Так ты онлайн пользуешься что ли? Поставь на комп локально и будет счастье:)
4-5 гигов провда.Немаленький хелп:)
51 Ковычки
 
29.03.09
13:04
GetDIBits но если быть уверенным хватит GetBitmapBits
кода строк 10 - 20, можно и в 1с забацать
52 Вик
 
29.03.09
13:10
(51) это где и как?
53 DmitrO
 
29.03.09
13:35
Есть такая штука у MS: Windows Image Acquisition Library v2.0
Это набор COM серверов для работы с картинками (физически это все лишь только одна WIAAut.dll ее просто надо зарегить обычным способом).

Функционал включает в себя:
- получение данных с WIA устройств (фотоаппараты, сканеры, камеры, сотики);
- работа с картинками (форматов тоже много, jpeg и bmp точно есть :)), наложение некоторых простых фильтров, вырезание области.

Вобщем с сайта MS можно скачать SDK с примерами (ссылку не дам, сам ищи мне  лениво).

С помощию нее можно решить эту задачу на 8ке, однако у 7ки будут проблемы т.к. она не умеет работать с SAFEARRAY.
54 Вик
 
29.03.09
14:09
(53) Спасибо, посмотрю
55 leshikkam
 
29.03.09
15:28
+(53)"однако у 7ки будут проблемы т.к. она не умеет работать с SAFEARRAY"
данная проблема решается при помощи вот этого средства:
http://www.1cpp.ru/forum/YaBB.pl?num=1234282554
56 DmitrO
 
29.03.09
15:41
(55) Возможно, но может и не получится, т.к. OleExSup позволяет оперировать массивами при вызове методов OLE объектов, а в VIA получится, что надо будет получить свойство типа SAFEARRAY.

Ну, я думаю что даже если не заработает сразу, то trad может это легко доделать.
57 Злопчинский
 
29.03.09
15:52
смотри сюда: http://www.infostart.ru/projects/1747/
можно сделать то, что тебе надо..
58 trdm
 
29.03.09
18:16
(50) Он у мну локально и стоит..
Это сто пудово эксплорер выпендривается.
59 DrZombi
 
гуру
29.03.09
19:31
Из памяти выдерать и т.д. БРЕД, если есть файл, то ройся в этом формате и выдергивай без проблем :)
60 kot_bcc
 
29.03.09
21:10
+(59) Притом, что рыться-то вообще необязательно. В .net, например, есть класс System.Drawing.Bitmap. Готовый (там даже есть функция GetColor(x,y):)
61 DrZombi
 
гуру
29.03.09
22:31
(60)Ну, ну, если память не изменяет, то это дополнение к ОС-ям
62 kot_bcc
 
29.03.09
23:21
(61) Ну, разве что к Линуксу, да к Вин2000 :) Начиная с WinXP - все встроено. Вместе с компилятором, чтобы СОМ-объект сделать:)
63 Ковычки
 
30.03.09
23:16
все понеслись незнайки на луну
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.