Преобразование и сравнение цвета в RGB ( VBA )

  • Автор темы Автор темы DukereD
  • Дата начала Дата начала
Sqr можно убрать (как на первом примере), для операции сравнения неважно корень или квадрат, зато чуть быстрее. А если очень надо, то корень можно от финального результата взять.
455 - волшебное число? Имхо лучше Ubound или Count взять, универсальнее будет.
Ну и сам макрос писался, до появления в модели GetColorDistanceFrom, стоит попробовать метод и сравнить.
да конечно сравню.

455 это магической число для вышивальщиц. именно столько оттенков ниток в стандартной гамме DMC
Да. обязательно поиграюсь с дистансфром. спасибо!
 
Вопрос с оптимизацией цветов решился еще проще.
стандартным кореловским преобразованием в палитру


Код:
            Dim pal As StructPaletteOptions
            Set pal = CreateStructPaletteOptions
            With pal
                .PaletteType = 2
                .NumColors = Int(Val(max_color.Value))
                .Smoothing = 0
                .DitherType = 0
            End With
            s.Bitmap.ConvertToPaletted2 pal

ну а далее сканируем и уже никакого мусора нет в цветах!
 
Вот тут еще вопрос возник не совсем по теме, но в рамках этого же макроса.
ActiveLayer.CreateRectangle2
вполне норм функция, но для создания по одному объекту.
а есть способ создать сразу массив объектов (кучу одинаковых разом)
так чтобы корел не тупил сильно ?
Или только отключаем прорисовку, создаем, и включаем заново.?
 
Последнее редактирование:
одна тема - один вопрос.
Переходите с этим в CorelDRAW>Автоматизация (или может модератор ветки перекинет)
кучу прямоугольников можно создать циклом подставляющим/вычисляющим координаты. Можно использовать функцию Duplicate dx,dy (раз они одинаковые). Для ускорения стоит использовать Virtual shapes, ну и включение-отключение оптимизаций. Иногда бывает быстрее сгенерировать ps, svg файл и импортировать его.
 
  • Спасибо
Реакции: DukereD