باستخدام الأكوام في يماغيماغيك إلى انتقائية طمس جزء من الصورة

StackOverflow https://stackoverflow.com/questions/376887

سؤال

وأنا أحاول لتعليم بعض النص على صورة قاعدة مع dropshadow. أنا لا أحب نتائج أحصل من استخدام الخيار -shadow، لذلك أنا اخماد النص، وضوح، ثم اخماد النص مرة أخرى في الأبيض، على بعد بضعة بكسل تعويض من الظل. وهنا الأمر أنا باستخدام:

convert base_image.jpg \
        -font TT0590M_.ttf \
        -fill gray30 \
        -annotate +0+0 '' -gravity North \
        -annotate +72+32 'ABCDEFGHIJKLM' \
        -blur 0x4 \
        -fill white \
        -annotate +72+27 'ABCDEFGHIJKLM' \
        combined.png

ومشكلتي هي أن الخيار -blur وضوح ليس فقط الطبقة الأولى من النص، ولكن الصورة الأساسية الكامنة كذلك. أريد فقط الطبقة الأولى من النص إلى طمس، وليس الصورة الأساسية.

وأنا أقرأ ما يصل قليلا على استخدام المداخن وحاولوا عزل الطبقة الأولى من النص والأمر طمس باستخدام \( \) حول هذا الجزء، كما هو الحال في ما يلي:

convert base_image.jpg \
        -font TT0590M_.ttf \
        -fill gray30 \
        -annotate +0+0 '' -gravity North \
        \( -annotate +72+32 'ABCDEFGHIJKLM' \
        -blur 0x4 \) \
        -fill white \
        -annotate +72+27 'ABCDEFGHIJKLM' \
        combined.png

والنتائج هي نفسها - يتم الحصول على blured كل من الظل النص والصورة الأساسية الكامنة وراءها. أخشى أنا لا وجود الكثير من الحظ فهم مداخن أو ما الأوامر البعض وأرجو أن تستخدم للحصول على تأثير أنا بعد.

هل كانت مفيدة؟

المحلول

وكما يحدث في كثير من الأحيان، لقد استمر في الانفجار بعيدا في هذا المجال منذ نشر السؤال ولقد تمكنت من حلها بمفردي.

وهذا التغيير المهم هو أنني بدأت مع، قماش بيضاء شفافة بدلا من البدء مع الصورة الأساسية. بعد أن تحصل على حق النص، وإدراج الصورة الأساسية إلى المكدس، مبادلة ترتيب الصورتين في المكدس، ثم مركب لهم نوع الإنشاء من "الشاشة"، الذي يرسي يعلو بعضها من بعض.

وملاحظة واحدة أخرى من الاستيراد: هناك حاجة لRGBA-قناة بحيث يعمل طمس بالتزامن مع شفافية طبقة النص، وذلك بسبب خصوصية في الطريقة التي يعمل IM. لماذا هذا أمر ضروري وأوضح في هذه الصفحة .

وكذلك على أنظمة ويندوز (ملف .bat بدلا من شيل)، في حاجة إلى الاقتباس واحدة لتكون علامات الاقتباس المزدوجة والخطوط المائلة العكسية "\" تحتاج إلى أن تكون CARETS "^"، أو كل ذلك يأتي انهار.

والبرنامج النصي أدناه هو النهائي، نتيجة العمل (* النسخة لا شىء):

convert  \
    -size 500x500 xc:transparent \
    -font TT0590M_.ttf \
    -annotate +0+0 '' -gravity North \
    -fill gray30 \
    -annotate +75+35 'ABCDEFGHIJKLMNOPQR\nABCDEFGHIJKLMNOPQR' \
    -channel RGBA \
    -blur 0x4 \
    -fill white \
    -annotate +72+30 'ABCDEFGHIJKLMNOPQR\nABCDEFGHIJKLMNOPQR' \
    -insert 0 base_image.jpg \
    -swap 0,1 \
    -composite -compose screen \
    combined.png
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top