ВОПРОС / ОТВЕТ ДЛЯ НАЧИНАЮЩИХ

Форум: 

Объясню на примере, чтоб было понятней... Открываю в кореле картинку (футболку с надписью) в формате JPG, мне нужно вытянуть из футболки надпись, т.е разъеденить файл... Говорят нужно формат изменить, еще что-то... Объясните, пожалуйста, что нужно сделать для этого...? Заранее спасибо.

NemoSUN, они центрируют выбранный объект перед экспортом, а затем возвращают на место. Но всё работает и без них, видимо, поэтому автор закомментировал их.

ildar_1988, мама дорогая !!!!!!!!!!! здОрово !!!!!
А тяжело будет прикрутить обработку сгруппированных объектов ????

второе - насколько понимаю

NemoSUN,нет, группы несложно добавить. Вечером должно быть свободное время, попробую добавить обработку сегодня.
(Или, может, кто-то из других участников успеет раньше.)

ildar_1988, а зачем центрировать перед экспортом, если сохранённая картинка всё равно не нуждается в положении на странице.

ildar_1988, я буду ждать вечера.

для обработки сгруппированных объектов можно попробовать заменить строку
For Each s In l.Shapes
на
For Each s In l.Shapes.FindShapes
По идее должны обрабатываться все объекты, даже те, которые в поверклипах и в группах. Можно также немного ускорить работу макроса добавив параметр, то есть FindShapes(,cdrBitmapShape ). Будут обрабатываться только битмапы и можно обойтись без проверки If s.Type = cdrBitmapShape Then

shark, For Each s In l.Shapes.FindShapes не прокатывает. " Будут обрабатываться только битмапы" - неее (. Только ! растр не хочется. А что даёт проверка ? Ведь l.Shapes изначально ищет растровые изображения.

А что даёт проверка ? Ведь l.Shapes изначально ищет растровые изображения.

и если они в группе - то и получите экстракт всей группы, а не отдельных элементов

. А что даёт проверка ? Ведь l.Shapes изначально ищет растровые изображения.

l.Shapes возвращает объекты со слоя, если несколько объектов в группе, то вернется один объект-группа. Потому-то и предложил использовать FindShapes - эта функция возвращает все "вложенные" в группы объекты, включая и сами объекты-группы
Кстати, FindShapes можно поставить сразу после переменной-слоя, то есть l.FindShapes, или даже не делать отдельный цикл по слоям, а получить список объектов For Each s In p.FindShapes сразу после постраничного цикла

Страницы