[CDR 2022] Проблема ExIm22 и старой версии тоже.

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

iKoolk

Участник
Топикстартер
Сообщения
198
Реакции
11
Бодрый вечер, коллеги!
С сожалением обнаружил, что ExIm22 и его предок не работают с псд. Точнее, то работают, то не работают (в основном не работают). А именно, бывает завешивают Корел при отправке в Шоп, а бывает, что Корел вылетает.
Какие еще странности: в тот момент, когда ExIm22 еще работает с psd, он возвращает картинку со сдвигом в 1/2 размера влево вниз.
Мозги съезжают при выполнении ex.Finish и именно с фильтром cdrPSD, а с cdrTIFF все в порядке.
Можно было бы работать и с тифаком, но он не возвращается по слоям.
Если у кого-то работает - сделайте отправку-апдейт - несколько раз, скорей всего сломается.
Есть идеи что случилось?
В 2021 работает в 24.5 - нет, в промежутках не пробовал.
 
Если кому-то интересно и понадобится, то Корел Комьюнити подсказал решение.
Строчку инициализации битмап-экспорта модифицируем вот так:
Set ex = d.ExportBitmap(p, cdrPSD, cdrSelection, s.Bitmap.Mode, s.Bitmap.SizeWidth, s.Bitmap.SizeHeight, s.Bitmap.ResolutionX, s.Bitmap.ResolutionY, cdrNoAntiAliasing, , , , , cdrCompressionNone)

Проверил, работает. очень рад.

PS думаю, что компрессию можно выставить и другую, но это не важно, кто работает с этими макросами знает, что временный псд удаляется.
 
Рано обрадовался - прозрачность так отключена, а с включенной прозрачностью начинает виснуть
 
"запломбируйте" её сброс перед передачей в PS
s.ClearTransformations 'Clear Transformation
' s.Transparency.ApplyNoTransparency 'Clear Transparency

эта часть кода подготовки перед передачей - оригинальная - от создателей - с "седой головой"
 
Последнее редактирование:
Может итоговый вариант кто бы выложил?
 
ну там ... дилемма ... наверное '))'
в фильтре изначально прозрачность включена, но затем сбрасывается принудительно, а поддержки слоёв нет - для всех вариантов
теперь вы хотите для PSD включить - но переменной для этого нет - её надо сделать, но не для JPG
...
проблема КМК в том, что новые версии CorelDRAW иначе обращаются с растром - с их неразрушающим эффектом
ведь в прежних версиях не наблюдалось этого

по факту отличий того что было и того что предложили на community - в двух местах - даже в одном - ибо поддержка слоёв и так и так False

Set ex = d.ExportBitmap(TempFOLDER, TempFilt, cdrSelection, s.Bitmap.Mode, s.Bitmap.SizeWidth, s.Bitmap.SizeHeight, s.Bitmap.ResolutionX,
s.Bitmap.ResolutionY, cdrNoAntiAliasing, , True, , False, cdrCompressionRLE_LW)

Set ex = d.ExportBitmap(p, cdrPSD, cdrSelection, s.Bitmap.Mode, s.Bitmap.SizeWidth, s.Bitmap.SizeHeight, s.Bitmap.ResolutionX, s.Bitmap.ResolutionY,
cdrNoAntiAliasing, , , , , cdrCompressionNone)
 
"запломбируйте" её сброс перед передачей в PS
s.ClearTransformations 'Clear Transformation
' s.Transparency.ApplyNoTransparency 'Clear Transparency

эта часть кода подготовки перед передачей - оригинальная - от создателей - с "седой головой"
Увы, это не та прозрачность. Это прозрачность всего битмап объекта, как эффекта от Корела, а в инициализации фильтра прозрачность это незакрашенность фрагментов битмапа совсем ничем. Короче не срабатывает.
Попробовал задавать прозрачность всему объекту - не помогло.
 
ну там ... дилемма ... наверное '))'
в фильтре изначально прозрачность включена, но затем сбрасывается принудительно, а поддержки слоёв нет - для всех вариантов
теперь вы хотите для PSD включить - но переменной для этого нет - её надо сделать, но не для JPG
...
проблема КМК в том, что новые версии CorelDRAW иначе обращаются с растром - с их неразрушающим эффектом
ведь в прежних версиях не наблюдалось этого

по факту отличий того что было и того что предложили на community - в двух местах - даже в одном - ибо поддержка слоёв и так и так False

Set ex = d.ExportBitmap(TempFOLDER, TempFilt, cdrSelection, s.Bitmap.Mode, s.Bitmap.SizeWidth, s.Bitmap.SizeHeight, s.Bitmap.ResolutionX,
s.Bitmap.ResolutionY, cdrNoAntiAliasing, , True, , False, cdrCompressionRLE_LW)

Set ex = d.ExportBitmap(p, cdrPSD, cdrSelection, s.Bitmap.Mode, s.Bitmap.SizeWidth, s.Bitmap.SizeHeight, s.Bitmap.ResolutionX, s.Bitmap.ResolutionY,
cdrNoAntiAliasing, , , , , cdrCompressionNone)
Но ведь с тифаком проблем нет - отлично отправляет, прозрачность учитывает и замечательно возвращает, только увы, без слоев. Какая-то выборочная деликатность с растром...
 
откуда тогда прозрачность?
например
1701860062657.png
 
хм ... предназначение макроса не обработке целого файла, а конкретного, выделенного растра,
который может быть как с прозрачностью, так без ...
суть топика - с одним и тем же файлом, с одним и тем же растром - версии до 2021 работают корректно,
а дальнейшие ... выпендриваются
 
я знаю два типа файлов:
Без слоев (бэкграунд) и прозрачности
2) со слоями (хотя бы одним, как в примере) и прозрачностью
Надо расширять кругозор. Прозрачность бывает очень разнообразная
 
У Корела вообще-то есть свой собственный "Фотошоп", Corel Photo Paint . Может не мучить зверушку, а прямо в родном обрабатывать?
 
  • Спасибо
Реакции: Любимцев
без слоев это значит, что отправил я из корела в фотошоп битмапину и напроизводил в шопе ряд действий, и создал там еще один слой, возвращаю в корел и тогда: если это псд - то битмапина возвращается группой, каждый член который - это бывший слой из шопа, а если это тифак, то слои сливаются в один битмап пусть и с сохранением прозрачностей. вот что значило без слоев.
про то, что импорт в псд осуществляется штатными средствами нормально - не писал, но вот пишу: импорт не из макроса осуществляется корректно.
Как обвинять фотошоп, в том, что крашится корел - не знаю. по мне очевидно, что дело не в Шопе
 
У Корела вообще-то есть свой собственный "Фотошоп", Corel Photo Paint . Может не мучить зверушку, а прямо в родном обрабатывать?
ну, кроме того, что это отнюдь не фотошоп, так честно говоря, не хочется изучать приложение, которое явно уступает.