2016-05-05 6 views
0

はimagemagickにはあまり広くありません。残念ながら、私はそれ以外のコーデックをすべて無効にすることが可能かどうかを知りたかったのです。これは可能ですか?たぶん番目のポリシーは、このような最初のものを覆すルール解釈順序によって:ImageMagickポリシーの解釈順序:すべてのコーダーを無効にして、1つだけを許可する

<policy domain="coder" rights="none" pattern="*" /> 
<policy domain="coder" rights="read | write" pattern="jpeg" /> 

私は、このためのいくつかの可能性を考えることができます。同じファイルで

  • 、最初のルール
  • 下記の2番目のルール 唯一のアスタリスク・グロブパターンで利用可能ではなく、他の正規表現-Sがあるようです configuration load order

に応じて異なるファイルで

  • タイルマッチングまたは否定(pattern="not jpeg"または何か)。

  • 答えて

    0

    ワイルドカードパターンマッチングは試してはいけませんが、すべてのコーダーについて説明してください。幸運にも、ImageMagickのidentifyユーティリティであり、システムのライブラリで利用可能なすべてのコーダーを教えてくれます。

    ポリシーマップを生成するためのawk/sedの、および他のワンライナーのユーティリティを介して実行することができます
    identify -list Coder 
    

    <policymap> 
        <policy domain="coder" rights="none" pattern="BGR" /> 
        <policy domain="coder" rights="none" pattern="BMP" /> 
        <policy domain="coder" rights="none" pattern="BRAILLE" /> 
        <policy domain="coder" rights="none" pattern="CALS" /> 
        <policy domain="coder" rights="none" pattern="CMYK" /> 
        <policy domain="coder" rights="none" pattern="DDS" /> 
        <policy domain="coder" rights="none" pattern="DNG" /> 
        <policy domain="coder" rights="none" pattern="DOT" /> 
        <policy domain="coder" rights="none" pattern="EPT" /> 
        <policy domain="coder" rights="none" pattern="FAX" /> 
        <policy domain="coder" rights="none" pattern="FITS" /> 
        <policy domain="coder" rights="none" pattern="GIF" /> 
        <policy domain="coder" rights="none" pattern="GRADIENT" /> 
        <policy domain="coder" rights="none" pattern="HTML" /> 
        <policy domain="coder" rights="none" pattern="ICON" /> 
        <policy domain="coder" rights="none" pattern="INLINE" /> 
        <policy domain="coder" rights="none" pattern="JBIG" /> 
        <policy domain="coder" rights="none" pattern="JP2" /> 
        <policy domain="coder" rights="read | write" pattern="JPEG" /> 
        <!-- ... --> 
        <!-- 
         Other coders omitted so folks don't copy-n-past, and assume "job-done" 
         --> 
    </policymap> 
    

    そしてもちろん、identify -list Format、およびidentify -list Delegateを繰り返します。

    なぜパターンではないのですか?

    私の議論はこれです。今日、巧妙なパターンを作成した場合、明日のビジネス要件が変わるとどうなりますか?私は、ポリシーマップが複雑になると思います。

    2年間で改訂があればどうなりますか? &を読み取ろうとすると、パターンが何をしているのかを覚えてから、さらに3つのキーストークスがに入ります。

    +0

    説明をいただきありがとうございます!ワイルドカードの無効化の理由は、今後追加される新しいコーダーが自動的に無効にならない可能性があるということでした。セキュリティ上の問題となる可能性があります。 – buggy3

    関連する問題