グラフィック枠から画像がはみだしている(トリミングされている)かどうかのチェック方法
[7638]グラフィック枠から画像がはみだしている(トリミングされている)かどうかのチェック方法 投稿者:たかし 投稿日:2013/07/03 15:47:41
初投稿させていただきます。
Win7 InDesign CS6の環境です。
先日、InDesignドキュメントのグラフィック枠に挿入した画像の一部が枠に収まっておらず、画像が欠けてしまうという事故が起こりました。もともとは枠に収まっていたのが、後から更新した画像が少し幅が大きくてはみ出てしまったようです。
そこで、InDesignにて画像がグラフィック枠に収まっておらずトリミングされている箇所を検出する方法がないかお聞きしたいと思い、投稿させていただきました。
テキストオーバーセットを検出するプリフライトはありますが、画像のはみだしについては項目ありません。
(意図的にトリミングする場合もありますからね)
オブジェクト検索/置換を利用しようとも思いましたが、トリミングの数値をきっちり指定しなければならず、「上下左右いずれかが0.1mm以上」などという条件での検索はできないようです。
みなさまのお知恵をお借りできましたら幸いです。
よろしくお願いいたします。
Win7 InDesign CS6の環境です。
先日、InDesignドキュメントのグラフィック枠に挿入した画像の一部が枠に収まっておらず、画像が欠けてしまうという事故が起こりました。もともとは枠に収まっていたのが、後から更新した画像が少し幅が大きくてはみ出てしまったようです。
そこで、InDesignにて画像がグラフィック枠に収まっておらずトリミングされている箇所を検出する方法がないかお聞きしたいと思い、投稿させていただきました。
テキストオーバーセットを検出するプリフライトはありますが、画像のはみだしについては項目ありません。
(意図的にトリミングする場合もありますからね)
オブジェクト検索/置換を利用しようとも思いましたが、トリミングの数値をきっちり指定しなければならず、「上下左右いずれかが0.1mm以上」などという条件での検索はできないようです。
みなさまのお知恵をお借りできましたら幸いです。
よろしくお願いいたします。
[7639]Re: グラフィック枠から画像がはみだしている(トリミングされている)かどうかのチェック方法 投稿者:流星光輝 投稿日:2013/07/03 17:09:18
[7641]Re: グラフィック枠から画像がはみだしている(トリミングされている)かどうかのチェック方法 投稿者:dot 投稿日:2013/07/03 18:28:41
話の流れ的に、たぶんイラストですよね…
画像なら何とか。
myItem = app.activeDocument.pageItems;
for (i=0; i<myItem.length; i++) {
if (myItem[i].contentType == 1735553140 & myItem[i].allGraphics.length > 0){
X = myItem[i].visibleBounds[3]-myItem[i].visibleBounds[1];
Y = myItem[i].visibleBounds[2]-myItem[i].visibleBounds[0];
try{
tmpObj = myItem[i].images[0];
if (X<(tmpObj.visibleBounds[3]-tmpObj.visibleBounds[1]) || Y<(tmpObj.visibleBounds[2]-tmpObj.visibleBounds[0])){
myItem[i].select();
alert("注意!");
}
} catch(e){
tmpObj = myItem[i].epss[0];
try{
if (X<(tmpObj.visibleBounds[3]-tmpObj.visibleBounds[1]) || Y<(tmpObj.visibleBounds[2]-tmpObj.visibleBounds[0])){
myItem[i].select();
alert("注意!");
}
} catch(e){
myItem[i].select();
alert("イラストは別途確認してください");
}
}
}
}
しばらくスクリプトを作ってなかったのでリハビリがてら作ってみましたが、かなりダメダメです。
枠サイズより中のサイズが大きいものに注意を出します。
が、回転してる画像とか、角丸になってるとか、そんなのがあると全然ダメだと思います。
こんなのしか作れなくて申し訳ないです…
画像なら何とか。
myItem = app.activeDocument.pageItems;
for (i=0; i<myItem.length; i++) {
if (myItem[i].contentType == 1735553140 & myItem[i].allGraphics.length > 0){
X = myItem[i].visibleBounds[3]-myItem[i].visibleBounds[1];
Y = myItem[i].visibleBounds[2]-myItem[i].visibleBounds[0];
try{
tmpObj = myItem[i].images[0];
if (X<(tmpObj.visibleBounds[3]-tmpObj.visibleBounds[1]) || Y<(tmpObj.visibleBounds[2]-tmpObj.visibleBounds[0])){
myItem[i].select();
alert("注意!");
}
} catch(e){
tmpObj = myItem[i].epss[0];
try{
if (X<(tmpObj.visibleBounds[3]-tmpObj.visibleBounds[1]) || Y<(tmpObj.visibleBounds[2]-tmpObj.visibleBounds[0])){
myItem[i].select();
alert("注意!");
}
} catch(e){
myItem[i].select();
alert("イラストは別途確認してください");
}
}
}
}
しばらくスクリプトを作ってなかったのでリハビリがてら作ってみましたが、かなりダメダメです。
枠サイズより中のサイズが大きいものに注意を出します。
が、回転してる画像とか、角丸になってるとか、そんなのがあると全然ダメだと思います。
こんなのしか作れなくて申し訳ないです…
[7642]Re: グラフィック枠から画像がはみだしている(トリミングされている)かどうかのチェック方法 投稿者:たかし 投稿日:2013/07/03 23:17:46
流星光輝さま
dotさま
早速ご返信いただきありがとうございます。
やはりスクリプトでの処理になりますよね。
dotさまのスクリプト試してみました。わざわざ書いていただき恐縮です…。申し訳ないとかとんでもないです。
概ね検出してくれましたが、グラフィックフレームが中の画像より大きく、画像が上下左右どこか少しだけ枠からはみだして欠けている、というケースは検出外でした。
まあそんなケースはあまりないかと思います。
いずれにせよ、教えていただいたスクリプトをベースにいろいろ試してみたいと考えております。
この度はレス大変感謝です。ありがとうございました。
dotさま
早速ご返信いただきありがとうございます。
やはりスクリプトでの処理になりますよね。
dotさまのスクリプト試してみました。わざわざ書いていただき恐縮です…。申し訳ないとかとんでもないです。
概ね検出してくれましたが、グラフィックフレームが中の画像より大きく、画像が上下左右どこか少しだけ枠からはみだして欠けている、というケースは検出外でした。
まあそんなケースはあまりないかと思います。
いずれにせよ、教えていただいたスクリプトをベースにいろいろ試してみたいと考えております。
この度はレス大変感謝です。ありがとうございました。
[7643]Re: グラフィック枠から画像がはみだしている(トリミングされている)かどうかのチェック方法 投稿者:オメガ 投稿日:2013/07/04 07:55:05
提示された条件だけですと、紙面によってはほとんどの画像にヒットしてしまうかも知れませんね。
たとえば、トリミングしてはいけない画像フレームに特定のオブジェクトスタイルを設定しておくとか、特定のレイヤー上に置いておくとか…
こういった条件をプラスしておいて、その上でスクリプトで座標値なりトリミングの数値で探して、確認ダイアログを出し、フレームを画像にフィットするか画像をフレームにフィットするか選ぶ、といった処理をすれば良いのではないでしょうか。
たとえば、トリミングしてはいけない画像フレームに特定のオブジェクトスタイルを設定しておくとか、特定のレイヤー上に置いておくとか…
こういった条件をプラスしておいて、その上でスクリプトで座標値なりトリミングの数値で探して、確認ダイアログを出し、フレームを画像にフィットするか画像をフレームにフィットするか選ぶ、といった処理をすれば良いのではないでしょうか。
[7644]Re: グラフィック枠から画像がはみだしている(トリミングされている)かどうかのチェック方法 投稿者:(z-) 投稿日:2013/07/04 09:20:33
スクリプトで済ますのであれば、
「フレームをコンテンツに合わせる」の前後でgeometricBoundsを取得して値を比較してundo()するのが乱暴だけど簡単で(作るのが)早いです。
「フレームをコンテンツに合わせる」の前後でgeometricBoundsを取得して値を比較してundo()するのが乱暴だけど簡単で(作るのが)早いです。
[7645]Re: グラフィック枠から画像がはみだしている(トリミングされている)かどうかのチェック方法 投稿者:dot 投稿日:2013/07/04 09:45:15
いろいろ勉強になります。
日々精進が必要ですね…
日々精進が必要ですね…
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)