[CDR 2017-2021] Контраст макросом или список CustomCommand

DukereD

макрософил
Топикстартер
Сообщения
471
Реакции
114
Казалось бы есть стандартная функция

Код:
s.ApplyEffectBCI 0, -1, 0

но не тут то было. в 2022 работает. а вот в 2020 не хочет. вроде и функцию выполняет, а результата ноль.

Какие еще есть пути изменения контраста в растровом объекте
вроде как должен быть доступен через CustomCommand, но вот беда. где найти весь перечень этих функций?
 

DukereD

макрософил
Топикстартер
Сообщения
471
Реакции
114
Еще нашел

Код:
s.Bitmap.ApplyBitmapEffect

код из примера
Код:
Sub ApplyBitmapEffect()
  Dim s As Shape
  For Each s In ActivePage.Shapes
    If s.Type = cdrBitmapShape Then
      If s.Bitmap.Mode <> cdrRGBColorImage Then
        s.Bitmap.ConvertTo cdrRGBColorImage
      End If
      s.Bitmap.ApplyBitmapEffect "Whirlpool", "WhirlpoolEffect WhirpoolSpacing=20,WhirlpoolSmear=9,WhirlpoolTwist=70,WhirlpoolStreak=60,WhirpoolWarp=1,WhirlpoolRandomSeed=0"
    End If
  Next s
End Sub

где взять весь этот список поддерживаемых эффектов для битмапа?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 274
Реакции
10 862
Еще нашел

Код:
s.Bitmap.ApplyBitmapEffect

код из примера
Код:
Sub ApplyBitmapEffect()
  Dim s As Shape
  For Each s In ActivePage.Shapes
    If s.Type = cdrBitmapShape Then
      If s.Bitmap.Mode <> cdrRGBColorImage Then
        s.Bitmap.ConvertTo cdrRGBColorImage
      End If
      s.Bitmap.ApplyBitmapEffect "Whirlpool", "WhirlpoolEffect WhirpoolSpacing=20,WhirlpoolSmear=9,WhirlpoolTwist=70,WhirlpoolStreak=60,WhirpoolWarp=1,WhirlpoolRandomSeed=0"
    End If
  Next s
End Sub

где взять весь этот список поддерживаемых эффектов для битмапа?
Ну Кэп подсказывает, что поиск по файлам строки, соответствующей параметрам одного эффекта даст и все остальные ;)
 

DukereD

макрософил
Топикстартер
Сообщения
471
Реакции
114
Вопрос про нерабочую функцию ApplyEffectBCI снимаю. видимо был глюк в какой-то конкретной сборке корела. 22.0.0.412
Проверил на 2018 все работает норм. Но вопрос про список кастом команд и битмап эффект все же остается.
 

DukereD

макрософил
Топикстартер
Сообщения
471
Реакции
114

DukereD

макрософил
Топикстартер
Сообщения
471
Реакции
114

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 274
Реакции
10 862

DukereD

макрософил
Топикстартер
Сообщения
471
Реакции
114
Ну, главное, начать, а там рядом с функциями и параметры найдутся ;)
А вообще говоря, советую покурить в эту сторону
да я уже не первый раз это искал, а сейчас 2 вечера на гугление потратил. иначе бы не спрашивал.
посмотрел DLLки не нашел параметры нигде.
 

DukereD

макрософил
Топикстартер
Сообщения
471
Реакции
114
А для примера к какому эффекту нужен список?
ну в данный конкретный вариант нужен контраст. но в целом сталкиваюсь с тм, что макрос действие не записывает а иногнда нужно. и найти списка не могу.

но сейчас ситуация решилась по первому варианту просто установкой другой версии корела. но странно что в конкретном билде (22.0.0.412) не срабатывает функция s.ApplyEffectBCI
 

Drawer

Участник
Сообщения
1 910
Реакции
843
ну в данный конкретный вариант нужен контраст
Параметры взял из DrawUI.xml по аналогии с приведенным выше кодом должно быть так.
s.Bitmap.ApplyBitmapEffect "NameUndo", "BCIEffect BCIBrightness=20, BCIContrast=50, BCIIntensity=-70"
Яркость контраст интенсивность задаются в диапазоне от -100 до 100
Проверить не могу, но по идее должно быть так.
 
  • Спасибо
Реакции: DukereD

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 274
Реакции
10 862
  • Спасибо
Реакции: DukereD

DukereD

макрософил
Топикстартер
Сообщения
471
Реакции
114
Параметры взял из DrawUI.xml по аналогии с приведенным выше кодом должно быть так.
s.Bitmap.ApplyBitmapEffect "NameUndo", "BCIEffect BCIBrightness=20, BCIContrast=50, BCIIntensity=-70"
Яркость контраст интенсивность задаются в диапазоне от -100 до 100
Проверить не могу, но по идее должно быть так.
проверил. Ошибку не выдает, но и ничего не делает (
Спасибо. буду файлы ковырять искать
 

Drawer

Участник
Сообщения
1 910
Реакции
843
Ошибку не выдает, но и ничего не делает
Код:
      Dim FULL_FILE_PATH As String 'Image name and path
      Dim BCI_EXPRESSION As String
      Dim IMAG_BRIGHT As Long ' Image Brightness adjustment
      Dim IMAG_CONTRAST As Long ' Image Contrast adjustment
      Dim IMAG_INTENSITY As Long ' Image Intensity adjustment

      IMAG_BRIGHT = 40 ' (-100 to 100)
      IMAG_CONTRAST = 80 ' (-100 to 100)
      IMAG_INTENSITY = 0 ' (-100 to 100)

      'The script does not appear to run unless CorelScript has opened the file.
      'So record the full file name & address that it currently open assuming it is open.
      FULL_FILE_PATH = ActiveDocument.FullFileName
      'Save the file otherwise close the file.
      'If you have made changes you will want to save the file.
      'The close command does not check to see if changes have been made.
      ActiveDocument.Close

      'Now open the same file again with CorelScript.
      CorelScript.FileOpen FULL_FILE_PATH, 0, 0, 0, 0, 0, 1, 1 ' Open image

      BCI_EXPRESSION = "BCIEffect BCIBrightness=" & IMAG_BRIGHT & ",BCIContrast=" & IMAG_CONTRAST & ",BCIIntensity=" & IMAG_INTENSITY

      CorelScript.BitmapEffect "Brightness-Contrast-Intensity", BCI_EXPRESSION
Тут нашел
 
  • Спасибо
Реакции: DukereD

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 274
Реакции
10 862
Я так понимаю, он обращается к модели фотопэинта?