[CDR X5-X8] Можно ли из кореловского файла "вытащить" растровые картинки?

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

garif

Топикстартер
R.I.P.
Сообщения
8 112
Реакции
3 109
Собственно.
В исходном качестве (в котором помещены были).
Только если как-то просто, без супер-заморочек.
 
Попробуй эспорт в AI/pdf, открыть фотошопом и раздел "images". Могут быть проблемы с теми, что вылезают за лист, "обрезаны".
 
  • Спасибо
Реакции: garif
Только если как-то просто
До версии X6 включительно мой CDRfind умел.
Даже не открывая файл.
Т.е. пересохраняешь как X6 открываешь CDRfindом и вытаскиваешь
А экспорт в иллюстратор пережимает по идее
 
  • Спасибо
Реакции: garif
Попробуй эспорт в AI/pdf
Ну, это уже чуть заморочено. :)

открыть фотошопом и раздел "images"
Ух ты! Не знал, что такое есть.
Не замечал раньше. :)
Спасибо.

Хотя, если гнать в pdf, можно и Акробатом вытащить.
 
Кмк, лучший вариант открыть их из Корела в кореловском же растровом редакторе, не помню как его звать. И уже оттуда сохранять в psd/tiff.
 
  • Спасибо
Реакции: BazzilioTheCat
До версии X6 включительно мой CDRfind умел.
Даже не открывая файл
А до Х8 сложно переделать?
Не следишь за прогрессом, Миша! :)

Вообще, штука крайне полезная была бы, учитывая сколько каки делают дизайнеры в Кореле и когда это все в нормальную верстку перегнать.
 
Правый клик по картинке - Save Bitmap As..., выбираешь формат, я предпочитаю tif. Для битмапов без прозрачностей диалога экспорта не будет, картинка сохранится
В исходном качестве (в котором помещены были).
Для jpg и т.п., для битмапов с прозрачностью и т.д. будет диалог опций экспорта, т.е. стоит воспользоваться методами @_MBK_
Для кучи картинок, чтобы не возиться с каждой - аналогично.
Думаю, можно и закодить.
 
Правый клик по картинке - Save Bitmap As..., выбираешь формат, я предпочитаю tif. Для битмапов без прозрачностей диалога экспорта не будет, картинка сохранится.
Так ТС спрашивает чтоб было исходное качество (наверное имел в виду исходный размер), а в вашем варианте вы в этом диалоговом окне сами задаете размер и разрешение...
 
edit3.gif
 
а в вашем варианте вы в этом диалоговом окне сами задаете размер и разрешение...
Повторяю:
Для битмапов без прозрачностей диалога экспорта не будет
картинка сохранится ... В исходном качестве (в котором помещены были).
 
JH - Jeff Harrison на корелкомьюнити в свое время ( over 8 year ago ) предлагал следующее
Код:
Sub ExportEachShape_as_jpg()
    Dim p As Page
    Dim opt As New StructExportOptions
    Dim s As Shape
    Dim i As Integer, j As Integer
    Dim x#, y#
    Dim filePath As String
   
    filePath = "C:\outputfiles\" ' set your file path
   
    j = 1
    For Each p In ActiveDocument.Pages
        p.Activate
        For i = 1 To ActivePage.Shapes.Count
             If ActivePage.Shapes(i).Type = cdrBitmapShape Then 'optional - uncomment if needed
            ActivePage.Shapes(i).CreateSelection
            'ActivePage.Shapes(i).GetPosition x, y
            'ActivePage.Shapes(i).AlignToPageCenter cdrAlignHCenter
            'ActivePage.Shapes(i).AlignToPageCenter cdrAlignVCenter
           
            'change your jpeg export options here.
            opt.AntiAliasingType = cdrNormalAntiAliasing
            opt.ImageType = cdrRGBColorImage
            opt.Overwrite = True
            opt.ResolutionX = 400
            opt.ResolutionY = 400
            opt.SizeX = opt.ResolutionX * ActivePage.Shapes(i).SizeWidth
            opt.SizeY = opt.ResolutionY * ActivePage.Shapes(i).SizeHeight

            ActiveDocument.Export filePath & j & ".jpg", cdrJPEG, cdrSelection, opt
            'ActivePage.Shapes(i).SetPosition x, y
            j = j + 1
             End If ' end optional - uncomment if needed
         Next i
    Next p
End Sub

запуск макроса приведет к экспорту всех битмапов, со всех страниц в папку
C:\outputfiles\ с разрешением 400дпи в модели RGB с присвоением номера/// впрочем всё правится, как видите ...
т.к. никаких АПИ - ограничений на версию Корела - нет

собранный макрос по ссылке на коммюнити - но там придется кое-что раскомментировать в коде - если вам нужно именно растр вытащить - иначе - если ничего не править - в растр экспортируются - ВСЕ объекты
 
тогда уж проще:
Код:
Sub bs()
  Dim p As Page, b As Shape
  i% = 0
  For Each p In ActiveDocument.Pages
    For Each b In p.Shapes.FindShapes(, cdrBitmapShape)
      b.Bitmap.SaveAs(ActiveDocument.FilePath & ActiveDocument.FileName & i & ".psd", cdrPSD).Finish
      i = i + 1
    Next b
  Next p
End Sub
Так же как у Джеффа без залезания в клипы (можно добавить), но в оригинальном разрешении, и цв.модели (по возможности), с использованием упомянутой функции Save Bitmap As... вместо экспорта.
 
  • Спасибо
Реакции: dastin
по хорошему к имени растра прицепить номер страницы ...
FileName & p & _ & i & ... а то такой бардельеро потом в каталоге получится

... растр из групп и поверклипов - мимо кассы?
 
Последнее редактирование:
Это быстрая тяп-ляпка, даже без вырезания ".cdr" из имени нового файла
 
JH - Jeff Harrison на корелкомьюнити в свое время ( over 8 year ago ) предлагал следующее
Джефф что-то несуразное предложил. В группы не заходит, в клипы не заходит, повёрнутые изображения так и экспортирует повёрнутыми, обтравленные через F10 так и экспортирует обтравленными. Больше вреда, чем пользы. По-хорошему, нужно взять алгоритм перебора всех объектов у Вакуленко и доделать код от @lev. Тогда будет корректно и полезно.
 
Джефф что-то несуразное предложил.
чего просили:
i have a around 500 cdr(corel draw ) files, and each pages have around 20 images in it.
то и предложил :)

поиск через query - группы уже будут
если шейп является поверклипом - взять фунцию Шелби Мура FindAllShapes
макрос с её участием Кореловцы даже в 2017 вставили - ConvertAllTo *** чего-то там
скорее даже не с участием - а Мур этот макрос весь и написал
а функция на Обероне уже 6 лет лежит
Код:
Sub TestFindAllShapes()
    Dim s As Shape, sr As ShapeRange
   
    Set sr = FindAllShapes.Shapes.FindShapes(Type:=cdrBitmapShape)
   
    For Each s In sr.Shapes
        s.Bitmap.ConvertToBW cdrRenderLineArt
    Next s
End Sub

Function FindAllShapes() As ShapeRange
    Dim s As Shape
    Dim sr As ShapeRange
    Dim srAll As New ShapeRange, srPowerClipped As New ShapeRange

    If ActiveSelection.Shapes.count > 0 Then
        Set sr = ActiveSelection.Shapes.FindShapes()
    Else
        Set sr = ActivePage.Shapes.FindShapes()
    End If
   
    Do
        For Each s In sr.Shapes.FindShapes(Query:="!@com.powerclip.IsNull")
            srPowerClipped.AddRange s.PowerClip.Shapes.FindShapes()
        Next s
       
        srAll.AddRange sr
        sr.RemoveAll
        sr.AddRange srPowerClipped
        srPowerClipped.RemoveAll
    Loop Until sr.count = 0
   
    Set FindAllShapes = srAll
End Function
 
  • Спасибо
Реакции: izrukvruki
Кмк, лучший вариант открыть их из Корела в кореловском же растровом редакторе, не помню как его звать. И уже оттуда сохранять в psd/tiff.
если несколько картинок то да - кнопа edit bitmap - открывается в программе Corel PhotoPaint в родном разрешении... export to bitmap - поменяет ему размер, на выходе, согласно заданным параметрам в векторном файле - точный размер будет указать сложнее. Со скриптами я не знаком. Лучше всего - во время создания иллюстрации с битмапами - прикреплять их Linkom из специально подготовленной папки. это позволит меняя оригиналы в PhotoPaint, PaintShop, или PhotoShop - автоматически получать измененные результаты внутри векторной иллюстрации.
Скриншот 2017-12-23 13.06.30.png