محل الشفافية في بابوا نيو غينيا الصور مع خلفية بيضاء
-
22-09-2019 - |
سؤال
لدي بعض الصور PNG مع الشفافية, و أنا بحاجة إلى إنشاء الإصدارات مع صورة طبقة تتكون على خلفية بيضاء.لقد حاولت أشياء مختلفة مع صورة السحر "تحويل" العمليات ، ولكن إما لا شيء يحدث في كل أو أحصل على خطأ.أنا لا أريد أن أذهب إلى وسيطة JPG شكل لأنني لا أريد القطع الأثرية.وبطبيعة الحال فإنه من السهل أن تفعل هذا في Gimp أو Photoshop أو أيا كان, ولكني افضل برنامج نصي من سطر الأوامر لأن هناك الكثير من هذه الأمور.
مثال على غير صورة العامل السحر الأوامر هي:
convert img1.png -background white -flatten img1-white.png
أن النتائج في خطأ.
وذلك بفضل!
المحلول
يعمل هذا بالنسبة لي:
convert -flatten img1.png img1-white.png
الوثائق المرجعية:
-flatten
خيار سطر الأوامر-layers
خيار سطر الأوامر (-flatten
ما يعادل-layers flatten
)
نصائح أخرى
-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