Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.52/23: Рейтинг темы: голосов - 23, средняя оценка - 4.52
turboq
156 / 156 / 12
Регистрация: 14.01.2010
Сообщений: 1,448
1

пиксели рисунка

26.01.2010, 12:44. Просмотров 4232. Ответов 22
Метки нет (Все метки)

Всем привет.
Нужно мне получить доступ к пикселям выделенного рисунка, читать и изменять их. И так чтоб работало как можно быстрее.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2010, 12:44
Ответы с готовыми решениями:

Сохранение Рисунка из Word в отдельный файл Рисунка
Ситуация следующая. В документе Word есть рисунок, его надо преобразовать в...

Пиксели, поинты, твипы и DPI!
Уважаемые коллеги! Помогите разобраться с пикселями, поинтами, твипами и DPI!...

Привязка рисунка в колонтитул
Вставляю рисунок в колонтитул, но при переносе книги, рисунок теряется... Куда...

Задать формат рисунка
Вставляю в колонтитулы рисунок: ActiveWindow.ActivePane.View.SeekView =...

Вставка анимированного рисунка
Доброго всем времени суток. Вопрос такой - можно ли и как если можно вставить...

22
Busine2009
Заблокирован
26.01.2010, 20:27 2
turboq,
только до выходных, может найду что-нибудь.
0
БурундукЪ
9556 / 2559 / 83
Регистрация: 17.02.2009
Сообщений: 10,364
26.01.2010, 21:50 3
turboq, есть такая API-функция BitBlt

Visual Basic
1
2
3
4
5
      Public Declare Function BitBlt Lib"gdi32" _
        (ByVal hDestDC As Long, ByVal X As Long,_
        ByVal Y As Long, ByVal nWidth As Long, _
        ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc _
       As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
0
turboq
156 / 156 / 12
Регистрация: 14.01.2010
Сообщений: 1,448
27.01.2010, 11:03  [ТС] 4
BitBlt знаю давно. Но как получить hDC рисунка в vba не знаю.
0
БурундукЪ
27.01.2010, 12:06
  #5

Не по теме:

Цитата Сообщение от turboq Посмотреть сообщение
в vba
:swoon:
:scratch: кхм, я снова раздел не глянул. думал - ВБ :pardon:

0
turboq
156 / 156 / 12
Регистрация: 14.01.2010
Сообщений: 1,448
29.01.2010, 10:31  [ТС] 6
Че никто не знает?
0
Busine2009
Заблокирован
30.01.2010, 10:45 7
turboq,
завтра гляну.

Добавлено через 12 часов 41 минуту
turboq,
а что с рисунком делать собираешься?
0
turboq
156 / 156 / 12
Регистрация: 14.01.2010
Сообщений: 1,448
30.01.2010, 11:32  [ТС] 8
Цитата Сообщение от Busine2009 Посмотреть сообщение
turboq,
завтра гляну.

Добавлено через 12 часов 41 минуту
turboq,
а что с рисунком делать собираешься?
Всяко разно
0
Busine2009
Заблокирован
30.01.2010, 12:24 9
turboq,
т.е. тебе нужен доступ к каждому пикселу что ли?
Я пока знаю, как узнать размер рисунка в пикселах. А чтобы каждым пикселом управлять - не знаю, возможно ли такое.
Только не цитируй меня, а то большие темы получаются, просто по нику щёлкай, если хочешь кому-то конкретно написать.

Добавлено через 19 минут
То есть смысл получается в чём, в том, что в VBA должен быть такой объект, как точка рисунка. Значит надо смотреть все свойства Рисунка.
В VBA нажми F2. В classes найди shape - посмотри справа все свойства и методы, затем выбери inlineshape - посмотри также свойства и методы.
Может что-нибудь откопаешь, я пробежался, но ничего не нашёл.

Добавлено через 19 минут
turboq,
я почему-то подумал, что речь идёт о Word.
О какой программе ты говоришь? В какой программе нужно управлять точками рисунка?
0
turboq
156 / 156 / 12
Регистрация: 14.01.2010
Сообщений: 1,448
30.01.2010, 12:44  [ТС] 10
Busine2009,
Да.
Если никто не знает как получить сразу то скажите как скопировать рисунок в буфер обмена, вставить в image и там делать с пикселями что я хочу. Если можно дать полное декларирование api.
0
Busine2009
Заблокирован
30.01.2010, 13:08 11
turboq,
а в какой среде разработки ты работаешь и на каком языке? В VBA нет api (а может и есть, просто так написал).
И что да?
В буфер обмена копируется ctrl+c.
Или справка по VBA - ключевое слово copy.
А что есть image?
0
БурундукЪ
9556 / 2559 / 83
Регистрация: 17.02.2009
Сообщений: 10,364
30.01.2010, 13:49 12
Цитата Сообщение от Busine2009 Посмотреть сообщение
В VBA нет api
нет. есть. но...
некоторые функции, особенно связанные с обработкой окон (форм) и элементов управления могут не работать

Добавлено через 1 минуту
точнее не так. в ВБА можно использовать вызов Вин АПИ. вот. терь правильно
0
Busine2009
Заблокирован
30.01.2010, 14:20 13
Сейчас с помощью программы Macro Toolworks записал макрос, который копирует рисунок в Word и вставляет его в Paint.

Добавлено через 13 минут
turboq,
кстати можно все рисунки из документа word достать и поместить в отдельную папку, как семечки из подсолнуха: для этого надо сохранить документ как html или что-то в этом роде.
1
БурундукЪ
9556 / 2559 / 83
Регистрация: 17.02.2009
Сообщений: 10,364
30.01.2010, 14:22 14
Busine2009, мож ему надо программно
то тогда эт через Вордовский ВБА врядли можно сделать
0
Busine2009
Заблокирован
30.01.2010, 14:29 15
CyberБурундукЪ,
что вряд ли можно сделать?
0
БурундукЪ
9556 / 2559 / 83
Регистрация: 17.02.2009
Сообщений: 10,364
30.01.2010, 14:32 16
Цитата Сообщение от Busine2009 Посмотреть сообщение
что вряд ли можно сделать?
программный доступ к графике (обработка попиксельно), т.е. через ВБА-код
0
Busine2009
Заблокирован
30.01.2010, 14:34 17
CyberБурундукЪ,
так он хочет уже рисунки в другую программу помещать, какой-то image. Спрашивает, как в буфер обмена их поместить. Но в буфер обмена их поместить можно только копируя.
1
БурундукЪ
9556 / 2559 / 83
Регистрация: 17.02.2009
Сообщений: 10,364
30.01.2010, 14:36 18
тогда это вариант
Цитата Сообщение от Busine2009 Посмотреть сообщение
кстати можно все рисунки из документа word достать и поместить в отдельную папку, как семечки из подсолнуха: для этого надо сохранить документ как html или что-то в этом роде.
самый лучший
0
turboq
156 / 156 / 12
Регистрация: 14.01.2010
Сообщений: 1,448
30.01.2010, 20:14  [ТС] 19
Какой то острой необходимости нет меня это просто заинтересовало и именно так а не как иначе.
Рисовал на апи в вб (давно) в вба апи объявить можно но рисовать не получается.
Debug.Print GetDC(Image1.Picture.Handle ) выводится 0 хотя Handle есть. Может что надо задать в среде разработки. Проверил код на делфи:
Delphi
1
2
3
4
5
var
q:HDC;
begin
q:=GetDC(form1.Handle);
TextOut(q,10,10,'qwe',3);
Работает.
Да еше из вба
Visual Basic
1
TextOut GetDC(0), 10, 10, "qwe", 3
тоже работает(рисует на экране) .
Работать надо в ворде.
0
Busine2009
Заблокирован
30.01.2010, 20:20 20
Забыл что ссылки нельзя вставлять на др. форумы.
0
30.01.2010, 20:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2010, 20:20

Преобразование рисунка в символ
Здравствуйте! Есть задача распарсить файл для переноса данных в базу. Исходный...

Хранение рисунка в .xlam
Всем добрый день! Подскажите пожалуйста, как в надстройке сохранить рисунок,...

Вставка рисунка в форму с листа
Kто может знает другой способ.. Необходимо создать IQ тест в экселе с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru