Приведение графики к 100%

  • Автор темы Автор темы Maxbor
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Maxbor

Топикстартер
15 лет на форуме
Сообщения
215
Реакции
82
В данной теме хочу задать сразу 2 вопроса знатокам:

1. В меню палитр Control и Transform имеется команда Reset Scaling to 100%, которая активна при выделении графического объекта инструментом Selection Tool и неактивна при выделении его инструментом Direct Selection Tool. Однако выполнение этой команды никаких видимых последствий за собой не влечет и не оставляет запись в Undo (главное меню программы) и в History (плагин). При назначении на эту команду горячей клавиши и выполнении ее через таковую реакция также видимо нулевая. Таким образом остается один вариант выполнения этой операции - выделение контента инструментом Direct Selection Tool и установки масштаба 100% в Control Palette или Transform Palette. Так что же это за загадочная команда Reset Scaling to 100% и как ее применить?

2. После изменения размеров помещенной графики (а также в результате применения скрипта Crop&Resize1.2b) и обновления ее в документе, она занимает весь фрейм (как будто в результате применения к фрейму команды Fit Contetn to Frame). Как сделать так, чтобы масштаб обновляемой графики всегда был 100%, то есть не изменялся? Пока для всей изменяемой графики приходится ее вручную приводить к 100%, как сказано в конце вопроса 1.
 
Ответ: Приведение графики к 100%

Попробуй скриптик.
Может подойдёт
 

Вложения

Ответ: Приведение графики к 100%

@diz@ сказал(а):
Попробуй скриптик.
Может подойдёт
Этот скрипт не подойдет точно, хотя бы потому что написан для CS (3.xx), а у автора судя во вопросу CS2 (4.xx).
Задачи я так и не понял, но кажется, что данный скрипт, даже будучи переписан под CS2, не подойдет.

Maxbor, ты лучше не про команды и скрипты спрашивай, а опиши подробней задачу, которую пытаешься решить.

На всякий случай.
Reset Scaling to 100%:
Эта команда сбрасывает в 100% фрейм содержащий графику, который был масштабирован в составе группы.

Не по теме:
Более интересна команда из той же серии "Scale Text Attributes" — то же, но для текстовых фреймов.


Crop&Resize1.2b:
Скрипт предназначен для _ресэмплинга_, _кадрирования_ файлов изображений и обновления их.
 
Попробую изложить основной (второй) вопрос подробнее, пошагово, так сказать.
Берем ID CS2 (4.0). Помещаем в публикацию файлик Pic.psd размером 80х80 мм, 300 точек на дюйм. Идем в Фотошоп и кадрируем Pic.psd до размера, скажем, 20х40 мм. Возвращаемся в ИнДизайн и апдейтим Pic.psd. В результате в фрейме 80х80 мм получаем видимый частично уже кадрированный Pic.psd в масштабе, почему-то, 398,73%. Тогда как ожидали увидеть видимое полностью кадрированное Pic.psd в
масштабе 100% и свободное место в остальной части фрейма. В чем собака порылась?
 
Ответ: Приведение графики к 100%

Надо сохранить нижеприведенный код в файл с расширением vbs и поместить его в папку скриптов.
На скрипт можно повесить горячую клавишу.
Выделенные картинки (необязательно одна) будут приводиться к 100%.
Код:
'====================================================
' 100_percent.vbs
'
' Скрипт предназначен для приведения выбранных изображений 
' в публикации к 100% при существующих разрешениях связанных 
' файлов.
' 
' Среда: InDesign CS2
'
' © Юрий Кузьмин (yuri-kuzmin@yandex.ru)
'====================================================
Set myInD = CreateObject("InDesign.Application.CS2")

Set mySelection = myInD.Selection
countItemInSelection = mySelection.Count
If countItemInSelection > 0 Then
    For i = 1 To countItemInSelection
        Set curGraphics = mySelection.Item(i).AllGraphics
        countGraphics = curGraphics.Count
        If countGraphics > 0 Then
            For j = 1 To countGraphics
                Set curImage = curGraphics.Item(j)
                curImage.Parent.ResetScaling
                curImage.VerticalScale = 100
                curImage.HorizontalScale = 100
                '================================
                ' Если нужен Fit to Content, 
                ' то раскомментируйте пять нижеследующих строк (уберите символ (') в начале).
                '================================
                'If curImage.Parent.Locked = False Then
                '    curImage.Parent.Fit (idFrameToContent)
                'Else
                '    MsgBox ("Unlock and try again")
                'End If
            Next
        End If
    Next
End If
 
Ответ: Приведение графики к 100%

Скрпит работает отлично! За него многие благодарности!
А вот поведение ИнДизайна, изложенное в моем вопросе, так пока и остается неясным.
 
Ответ: Приведение графики к 100%

Да чего ж непонятного? Он пытается привести к линейным размерам, которые были у картинки до редактирования.
Приведу, с моей точки зрения, типичный пример:
- поместили в публикацию картинку;
- привели ее линейные размеры в соответствие макету (масштаб, кадрирование), эффективное разрешение стало больше чем требуемое выводное;
- открыли в фотошопе, ресэмплировали, откорректировали, пошарпили, почистили, сохранили;
- обновили связь и убедились, что картинка стоит как стояла (сюжетная часть), изменилось только эффективное разрешение.

Такое поведение Ind, как раз, логично.
Нелогичным было бы после вышеописанных действий получить маленькую картинку в углу фрейма, при неизменном, завышенном эффективном разрешении (так было, кстати, во 2-й версии Ind).
Хотя, конечно, Ind мог бы и анализировать разрешение отредактированной картинки, и если оно неизменно, то и обновлять ее с неизменным эффективным разрешением.
 
Ответ: Приведение графики к 100%

Kuzmin сказал(а):
Такое поведение Ind, как раз, логично.
Думаю, гораздо лучше, чтобы это было настраиваемо.
Ведь изначально вопрос возник от того, что CropResize.exe 1.2 b после своей работы как раз и не приводит к 100%. В связи с этим возникло предположение, что в ИнДи есть какая-то настройка, а сам я ее не нашел. И после применения CropResize.exe 1.2 b приходилось ручками каждую картинку приводить к 100%.
 
Ответ: Приведение графики к 100%

Думаю, гораздо лучше, чтобы это было настраиваемо.
Угу, согласен.

CropResize.exe 1.2 b после своей работы как раз и не приводит к 100%.
Вот этого я из твоих предыдущих постов не понял. Опиши подробней, что происходит в результате применения скрипта, а лучше опиши подробно и пришли мне часть публикации с картинкой, которая так себя ведет.
Мне не удалось воспроизвести ситуацию в которой бы скрипт не приводил к 100% модифицированные файлы.
 
Воспроизведение ситуации - Приведение графики к 100%

Искусственное воспроизвожу ситуацию и прилагаю в архиве все файлы участники. Для "протоколирования" использовал DTP Tools History плагин версии 2.1. Без плагина будет видно лишь последнее состояние публикации.
 

Вложения

Ответ: Воспроизведение ситуации - Приведение графики к 100%

Точно, это баг скрипта.
Исправлю в ближайшее время.
 
Ответ: Воспроизведение ситуации - Приведение графики к 100%

Kuzmin сказал(а):
Точно, это баг скрипта.
Исправлю в ближайшее время.

Честно говоря, такое подозрение было с самого начала :-)
Но решил начать проверку с себя - в самом деле, скрипт общедоступный. Трудно поверить в то, что никто до сих пор не заметил такого бага.
И еще вдогонку. Возможно, актуальным было бы включить в обновленную версию скрипта удаление из PSD или TIFF слоев файла, отключенных изнутри ИнДизайна. Если это, конечно, возможно.
 
Ответ: Приведение графики к 100%

Kuzmin сказал(а):
Надо сохранить нижеприведенный код в файл с расширением vbs и поместить его в папку скриптов.
На скрипт можно повесить горячую клавишу.
Выделенные картинки (необязательно одна) будут приводиться к 100%.

Еще и от меня за этот скрипт большущее огромное спасибо! :)
 
Статус
Закрыто для дальнейших ответов.