[CDR 2024] Average в Corel

  • Автор темы Автор темы iKoolk
  • Дата начала Дата начала

iKoolk

Участник
Топикстартер
Сообщения
198
Реакции
11
Понадобилось среднее значение цветов в макете. Усреднялку сделал. Увы, но для этого макет растрируется, а хочется теперь еще не ручками показания пипетки переписывать, а их получить в текстовом виде. Можно ли как-то макросово узнать цвет в конкретной точке странички? Трассировка получившегося квадрата дает визуально похожий цвет, но по цифрам чувствительно другой.
 
Понадобилось среднее значение цветов в макете. Усреднялку сделал. Увы, но для этого макет растрируется, а хочется теперь еще не ручками показания пипетки переписывать, а их получить в текстовом виде. Можно ли как-то макросово узнать цвет в конкретной точке странички? Трассировка получившегося квадрата дает визуально похожий цвет, но по цифрам чувствительно другой.
Тут была уже подобная тема, к сожалению, ЕМНИП, к показаниям пипетки из VBA доступа нет. Как заднепроходные варианты - полученный пиксел экспортировать в bmp и читать оттуда или через winAPI читать пиксел с экрана.
 
  • Спасибо
Реакции: iKoolk
Тут была уже подобная тема, к сожалению, ЕМНИП, к показаниям пипетки из VBA доступа нет. Как заднепроходные варианты - полученный пиксел экспортировать в bmp и читать оттуда или через winAPI читать пиксел с экрана.
спасибо. Жалко.
 
а если через GetClick получить координаты и вытянуть по ним объект и потом пиксель?
 
а почему бы и нет? растр же в кореле. получить координаты пикселя не сложно математически вычислив. ну а сам пиксель прекрасно берется стандартной функцией битмапа
 
  • Спасибо
Реакции: eugeny и mnemonix
а почему бы и нет? растр же в кореле. получить координаты пикселя не сложно математически вычислив. ну а сам пиксель прекрасно берется стандартной функцией битмапа
я таким образом переписал для себя свою копию свойств, чтобы брать и из растра цвет тоже, именно, по координатам (моя ниже '))' )
Код:
retvall = ActiveDocument.GetUserClick(x1, y1, 0, 10, True, cdrCursorEyeDrop)
     If retvall Then GoTo CancelIt
     Set clr = ActiveDocument.SampleColorAtPoint(x1, y1)
ТС пипетка не нужна, а сразу брать по координатам (последняя строка кода).

1727084821083.png
 
  • Спасибо
Реакции: Chiga, DukereD и iKoolk
Бррр
А что такое этот ActiveDociment.SampleColorAtPoint ?
 
Это какой то новый стандартный метод?
 
я таким образом переписал для себя свою копию свойств, чтобы брать и из растра цвет тоже, именно, по координатам (моя ниже '))' )
Код:
retvall = ActiveDocument.GetUserClick(x1, y1, 0, 10, True, cdrCursorEyeDrop)
     If retvall Then GoTo CancelIt
     Set clr = ActiveDocument.SampleColorAtPoint(x1, y1)
ТС пипетка не нужна, а сразу брать по координатам (последняя строка кода).

Посмотреть вложение 168285
Блеск, спасибо, то что надо!
 
  • Спасибо
Реакции: eugeny
Мда, отстал я от технического прогресса... :(
 
Для этого, вроде, есть другая интересная фишка - Bitmap.Image.Pixel(x,y). Но я ей не пользовался, поэтому не могу сказать насколько точно она работает.
да. есть но только у функции Pixel(x,y) это координаты по пикселям поэтому я и говорил, что надо математически высчитать из экранных (документа) координат.