محل الشفافية في بابوا نيو غينيا الصور مع خلفية بيضاء

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

سؤال

لدي بعض الصور PNG مع الشفافية, و أنا بحاجة إلى إنشاء الإصدارات مع صورة طبقة تتكون على خلفية بيضاء.لقد حاولت أشياء مختلفة مع صورة السحر "تحويل" العمليات ، ولكن إما لا شيء يحدث في كل أو أحصل على خطأ.أنا لا أريد أن أذهب إلى وسيطة JPG شكل لأنني لا أريد القطع الأثرية.وبطبيعة الحال فإنه من السهل أن تفعل هذا في Gimp أو Photoshop أو أيا كان, ولكني افضل برنامج نصي من سطر الأوامر لأن هناك الكثير من هذه الأمور.

مثال على غير صورة العامل السحر الأوامر هي:

convert img1.png -background white -flatten img1-white.png

أن النتائج في خطأ.

وذلك بفضل!

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

المحلول

يعمل هذا بالنسبة لي:

convert -flatten img1.png img1-white.png

الوثائق المرجعية:

نصائح أخرى

-background white -alpha remove -alpha off

على سبيل المثال:

convert image.png -background white -alpha remove -alpha off white.png

لا تتردد في محل white مع أي لون تريد.يماغيماغيك الوثائق يقول هذا عن -alpha remove العملية:

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

تسطيح الصورة وتطبيق صورة الخلفية هي على التوالي إلى الأمام في ImageMagick

ومع ذلك أمر من الأوامر مهم جدا

لتطبيق أي خلفية عن صورة شفافة وتمهيدها ، أول تطبيق الخلفية من وتمهيدها.العكس لا يعمل.

$ convert sourceimage.png -background BackgroundColor -flatten destinationimage.png

الوحيدة التي عملت بالنسبة لي كان مزيج من كل الإجابات:

convert in.png -background white -alpha remove -flatten -alpha off out.png

باستخدام -لشد جعلني تماما بسبب مرض جنون -لشد في تركيبة مع mogrify المحاصيل وتغيير حجم ببساطة لا يعمل.الرسمية و بالنسبة لي فقط الطريقة الصحيحة هي أن "إزالة" قناة ألفا.

-ألفا إزالة ألفا قبالة (لا حاجة مع JPG)

انظر documention: http://www.imagemagick.org/Usage/masking/#remove

هنا كيفية استبدال نفس الصورة في كل المجلدات الموجودة في دليل مع الأبيض بدلا من شفافية:

mogrify -background white -flatten */*.png

على ألفا إزالة القسم يماغيماغيك دليل استخدام يوحي باستخدام -alpha remove الخيار, على سبيل المثال:

convert in.png  -background white  -alpha remove  out.png

...باستخدام -background لون من اختيارك.

الدليل على ما يلي:

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

بالإضافة إلى ذلك فإنه يضيف ملاحظة:

نلاحظ أنه في حين الشفافية 'إزالة' قناة ألفا سوف تبقى تشغيل, ولكن الآن سوف تكون تماما مبهمة.إذا لم تعد في حاجة إلى قناة ألفا ثم يمكنك استخدام ألفا إلى تعطيله.

وهكذا, إذا كنت لا تحتاج قناة ألفا يمكنك جعل الإخراج الخاص بك حجم الصورة أصغر عن طريق إضافة -alpha off الخيار هـ.g:

convert in.png  -background white  -alpha remove  -alpha off  out.png

هناك المزيد من التفاصيل عن الأخرى, التي غالبا ما تستخدم تقنيات إزالة الشفافية هو موضح في إزالة الشفافية من الصور القسم.

المدرجة في هذا القسم هو إشارة تحذير هام إلى استخدام -flatten كما تقنية إزالة الشفافية:

ولكن هذا لن يعمل مع "mogrify" أو مع سلسلة من صور متعددة ، أساسا لأن "-تسطيح" المشغل هو حقا مصممة لدمج عدة صور في صورة واحدة.

لذا ، إذا كنت تحويل العديد من الصور في وقت واحد, على سبيل المثالتوليد الصور المصغرة من ملف PDF ، -flatten لن تفعل ما تريد (سوف تتسطح جميع صور لجميع الصفحات في صورة واحدة).من ناحية أخرى ، وذلك باستخدام -alpha remove تقنية لا تزال تنتج صور متعددة ، كل واحد وجود الشفافية إزالتها.

يبدو أن الأوامر الخاص بك هو الصحيح وبالتالي فإن المشكلة قد تكون بسبب فقدان الدعم PNG ().يمكنك التحقق مع convert -list configure أو مجرد محاولة ما يلي:

sudo yum install libpng libpng-devel

هذا ليس الجواب على سؤالك, ولكن وجدت سؤالك الوقت في محاولة لمعرفة كيفية إزالة قناة ألفا, لذلك قررت أن أضيف هذا الجواب هنا:

إذا كنت ترغب في إزالة قناة ألفا باستخدام يماغيماغيك ، يمكنك استخدام هذا الأمر:

mogrify -alpha off ./*.png

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

تحرير, منذ وقت لاحق — في أحد الأيام سوف تحقق لمعرفة ما إذا كان "رسومات السحر" تم إصلاح هذه المشكلة.

أنا في حاجة إما:سواء -alpha background و -flatten, أو -fill.

أنا جعلت جديد PNG مع خلفية شفافة و نقطة حمراء في الوسط.

convert image.png -background green -alpha off green.png فشل:أنتجت صورة مع خلفية سوداء

convert image.png -background green -alpha background -flatten green.png أنتجت صورة الصحيح خلفية خضراء.

وبطبيعة الحال ، مع ملف آخر أنني سميت image.png, ، لم تفعل أي شيء.لهذا الملف ، وجدت أن لون شفاف بكسل كان "#d5d5d5" حتى ملأت هذا اللون مع اللون الأخضر:

convert image.png -fill green -opaque "#d5d5d5" green.png استبدال شفافة بكسل مع الصحيح الأخضر.

وهذا يخلق صورة فقط وضع 1 مع الشفافية على رأس 2

composite -gravity center ImgWithTransp.png BackgroundSameSizeOfImg.png ResultImg.png

وجدت أصلا طرف على هذا المنصب

في الواقع إزالة قناة ألفا من الملف ، استخدام ألفا قبالة الخيار:

convert in.png -background white -alpha off out.png

رأيت هذا السؤال والأجوبة التي تساعد حقا لي ولكن بعد ذلك كنت في حاجة إلى القيام بالكثير من الملفات ، حتى في حال كان لديك العديد من الصور (PNG) في مجلد واحد و كنت تريد أن تفعل ذلك للجميع:

find ./ -name "*.png" -exec convert {} -flatten {} \;

إنها ألفا لم ألفا إزالة!دائرة الرقابة الداخلية المتجر تحميل فشل عندما يكون هناك قناة ألفا في أي رمز!!

هنا هو كيف نفعل ذلك:mogrify ألفا قبالة *.png

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top