সাদা পটভূমিতে পিএনজি চিত্রগুলিতে স্বচ্ছতা প্রতিস্থাপন করুন


293

আমি স্বচ্ছতার সাথে কিছু পিএনজি চিত্র পেয়েছি এবং আমার একটি সাদা পটভূমিতে ইমেজ স্তরযুক্ত রচনাগুলি তৈরি করতে হবে। আমি ইমেজ ম্যাগিক "রূপান্তর" অপারেশন সহ বিভিন্ন জিনিস চেষ্টা করেছি, তবে হয় কিছুই হয় না বা ত্রুটি পাই। আমি কোনও মধ্যবর্তী জেপিজি ফর্মে যেতে চাই না কারণ আমি নিদর্শনগুলি চাই না। অবশ্যই এটি জিম্প বা ফটোশপ বা যে কোনও কিছুতে করা সহজ, তবে আমি সত্যিই বরং এটি কমান্ড লাইন থেকে স্ক্রিপ্ট করব কারণ এর মধ্যে অনেক কিছুই রয়েছে।

অ-কাজকর্মের চিত্র ম্যাজিক কমান্ডের একটি উদাহরণ:

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

এর ফলে একটি ত্রুটি হয়।

ধন্যবাদ!


আমার নির্দিষ্ট ক্ষেত্রে পিএনজি-তে স্বচ্ছতার স্তরটি পিডিএফ / এ তৈরি করতে কোনও (অ্যাপাচি) এফও প্রসেসরের মাধ্যমে যাওয়ার সময় বিরোধিত হয়। পিডিএফ / এ স্বচ্ছতার অনুমতি দেয় না। আমি যে হ্যাকটি ব্যবহার করেছি তা হ'ল পরিবর্তে জেপিজিতে ঘুরতে।
উইভানি

3
"এর ফলে একটি ত্রুটি হয়" " ত্রুটির বার্তা কি?
অ্যারন ম্যাকডেইড

এই আদেশটি ঠিক কাজ করা উচিত। যদি এটি না হয়, তবে আপনার কাছে ইমেজম্যাগিক বা লিবপং এর একটি বগি ইনস্টল থাকতে পারে বা আপনার সংস্করণগুলির সংস্করণটি খুব পুরানো। আপনার ইমেজম্যাগিক এবং লিবপং এর সংস্করণটি কী?
fmw42

উত্তর:


253

এটি আমার পক্ষে কাজ করে:

convert -flatten img1.png img1-white.png

ডকুমেন্টেশন রেফারেন্স:


3
একরকম এটি আমার পক্ষে কার্যকর হয় না ... আমি "স্বচ্ছ-রঙিন সাদা" চেষ্টা করেছি, তবে একটি ব্যতিক্রম / সতর্কতা পেয়েছি।
উইলিয়াম নিউ

1
দেখা যাচ্ছে যে আমাকে -ব্যাপীডটিও সাদা করতে হবে। আমি রংগুলি। এক্সএমএলও ডাউনলোড করতে হয়েছিল যা অনুপস্থিত ছিল।
উইলিয়াম নিউ

9
নীচে আমার উত্তর দেখুন। এটি যুক্ত হওয়ার পরে ২ বছর পরে এটি যুক্ত করা হয়েছিল।
রোক ক্রালজ

42
এর সাথে মাল্টি-পেজ ডকুমেন্টগুলিকে রূপান্তর করার চেষ্টা করবেন না-flatten । এটি পৃষ্ঠাগুলি এক পৃষ্ঠায় সমতল করবে।
টিম এস

8
আপনি যদি আপনার ফোল্ডার থেকে সমস্ত ফাইলে এটি করতে চান তবে আপনি এটি এইভাবে করতে পারেন: mogrify -flatten *.pngসেক্ষেত্রে ব্যাকআপ নিতে ভুলবেন না। এখানে আরও তথ্য: imagemagick.org/script/mogrify.php
ট্রয়নে

372
-background white -alpha remove -alpha off

উদাহরণ:

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

whiteআপনি চান অন্য কোনও রঙের সাথে প্রতিস্থাপন নির্দ্বিধায় । চিত্রগ্রাহক ডকুমেন্টেশন -alpha removeঅপারেশন সম্পর্কে এটি বলে :

এই অপারেশনটি সহজ এবং দ্রুত এবং কোনও অতিরিক্ত মেমরির ব্যবহার বা বিকল্প স্বচ্ছতা অপসারণ কৌশলগুলির সাথে সম্পর্কিত হতে পারে এমন অন্যান্য পার্শ্ব প্রতিক্রিয়া ছাড়াই কাজটি করে। এটি চিত্রের স্বচ্ছতা অপসারণের পছন্দসই উপায়।


3
দেখে মনে হচ্ছে যে -background whiteএটি প্রয়োজন নেই (এটি সম্ভবত অন্য রঙগুলির জন্য)।
স্কিপি লে গ্র্যান্ড গুরো

5
@ স্কিপাইলগ্র্যান্ড গৌড়ো: পিএনজির স্বচ্ছতা ফ্যালব্যাক রঙ সর্বদা সাদা না হওয়ায় এটি প্রয়োজন।
রোক ক্রালজ

3
গৃহীত উত্তরের চেয়ে উত্তম (যা একাধিক স্তরের ক্ষেত্রে সঠিক কাজটি করে না)
axkibe

5
ফলস্বরূপ চিত্রটিতে এখনও একটি আলফা চ্যানেল থাকবে। এটি খালি থাকবে তবে এটি এখনও থাকবে। চ্যানেল অ্যাড সম্পূর্ণ অপসারণ করতে -alpha off
জোশ

2
কাজ করে না। আমি একটি স্বচ্ছ পটভূমি এবং মাঝখানে একটি লাল বিন্দু সহ একটি নতুন পিএনজি করেছি। সর্বদা একটি কালো পটভূমি উত্পাদিত হয়েছিল, যাই হোক না কেন আমি নির্দিষ্ট রঙ নির্ধারণ করি। convert image.png -background white -alpha off white.pngএকটি কালো পটভূমি সহ একটি চিত্র উত্পাদিত। convert image.png -background "#00ff33" -alpha off 00ff33.pngএকটি কালো পটভূমি উত্পাদন করেছে
ম্যাকন্ট্রি

46

চিত্রটি সমতল করা এবং ব্যাকগ্রাউন্ড চিত্র প্রয়োগ করা ইমেজম্যাগিকে সোজা এগিয়ে is

তবে কমান্ডের ক্রমটি খুব গুরুত্বপূর্ণ

স্বচ্ছ চিত্রটিতে যে কোনও ব্যাকগ্রাউন্ড প্রয়োগ করতে এবং এটি সমতল করতে, প্রথমে এটি সমতল করার চেয়ে ব্যাকগ্রাউন্ডটি প্রয়োগ করুন। বিপরীত কাজ করে না।

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

যে কারণেই হোক না কেন, এটি আমার পক্ষে ভাল কাজ করেছে। আপনার আসল প্রচেষ্টাটি কেন কার্যকর হয়নি তা নিশ্চিত নয়।
অ্যান্টনি

23

আমার পক্ষে কাজ করা একমাত্র সমস্ত উত্তরগুলির মিশ্রণ ছিল:

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

4
শীতল, যে কাজ। আমার আসলে সাদা থেকে অন্য রঙের দরকার ছিল এবং আপনি সাদা ব্যবহারের ... -background "#010203" ...পরিবর্তে ব্যবহার করতে পারেন ।
অ্যালেক্সিস উইল্ক

ডিরেক্টরিতে সমস্ত ফোল্ডারে একই চিত্র কীভাবে প্রতিস্থাপন করা যায় তা এখানেmogrify -background white -flatten */*.png
জুলিয়ান

-alpha removeএটি আমার জন্য কী করেছিল
স্টেফান ড্রাগনভ

13

এখানে একটি ডিরেক্টরিতে সমস্ত ফোল্ডারে একই চিত্রটিকে স্বচ্ছের পরিবর্তে সাদা সহ কীভাবে পরিবর্তন করা যায় তা এখানে:

mogrify -background white -flatten */*.png


10

-ফ্লেটেন ব্যবহার আমাকে পুরোপুরি পাগল করেছে কারণ-মোগ্রিফির ফসলের সাথে মিশ্রিত ফ্ল্যাট্টেন এবং পুনরায় আকারগুলি কার্যকর হয় না। অফিসিয়াল এবং আমার পক্ষে সঠিক উপায় হ'ল আলফা চ্যানেলটিকে "অপসারণ"।

-ালফা সরান-আলফা বন্ধ (জেপিজির সাথে প্রয়োজন হয় না)

ডকুমেন্টেশন দেখুন: http://www.imagemagick.org/Usage/masking/# সরানো


তাহলে কমান্ডটি কীভাবে হবে? এটি এখানে কাজ করে নি:convert imgWithTranspBkg.png -alpha remove -alpha off bkg.jpg resultImg.png
কুম্ভ শক্তি

আমি কেবল আলফা মুছে ফেলতে চেয়েছিলাম। এটি জেপিজিতে রূপান্তর করুন, এটি দুর্দান্ত এবং সহজ। ভকভগক.
রজার সিএস ওয়ার্নারসন

এটি আমার জন্য কাজ করা উপরের একমাত্র সমাধান। আইটিউনস স্টোরটি আমার ছবিতে খুশি।
বিল চেসউইক

7

আলফা সরান বিভাগে করে ImageMagick ব্যবহারের নির্দেশিকা ব্যবহার দাড়ায় -alpha removeবিকল্প, যেমন:

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

... -backgroundআপনার পছন্দের রঙ ব্যবহার করে ।

গাইড বলেছে:

এই অপারেশনটি সহজ এবং দ্রুত এবং কোনও অতিরিক্ত মেমরির ব্যবহার বা বিকল্প স্বচ্ছতা অপসারণ কৌশলগুলির সাথে সম্পর্কিত হতে পারে এমন অন্যান্য পার্শ্ব প্রতিক্রিয়া ছাড়াই কাজটি করে। এটি চিত্রের স্বচ্ছতা অপসারণের পছন্দসই উপায়।

এটি অতিরিক্তভাবে নোটটি যুক্ত করে:

নোট করুন যে স্বচ্ছতা 'অপসারণ' চলাকালীন আলফা চ্যানেলটি চালু থাকবে, তবে এখন পুরোপুরি অস্বচ্ছ হবে। আপনার যদি আর আলফা চ্যানেলের প্রয়োজন হয় না তবে আপনি এটি অক্ষম করতে আলফা অফ ব্যবহার করতে পারেন।

সুতরাং, আপনার যদি আলফা চ্যানেলের প্রয়োজন না হয় তবে -alpha offবিকল্পটি যুক্ত করে আপনি নিজের আউটপুট চিত্রের আকার ছোট করতে পারেন , যেমন:

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

চিত্রগুলি থেকে স্বচ্ছতা অপসারণে বর্ণিত স্বচ্ছতা অপসারণ করার জন্য অন্যান্য, প্রায়শই ব্যবহৃত কৌশলগুলির বিষয়ে আরও বিশদ রয়েছে বিভাগ রয়েছে।

বিভাগে অন্তর্ভুক্তটি -flattenস্বচ্ছতা অপসারণের কৌশল হিসাবে ব্যবহারের ক্ষেত্রে একটি গুরুত্বপূর্ণ সতর্কতার কথা উল্লেখ করেছে:

তবে এটি "মোগ্রিফি" বা একাধিক চিত্রের অনুক্রমের সাথে কাজ করবে না, মূলত কারণ "-ফ্ল্যাশ" অপারেটরটি একাধিক চিত্রকে একক চিত্রের সাথে একীভূত করার জন্য তৈরি করা হয়েছে।

সুতরাং, আপনি যদি এক সাথে একাধিক চিত্র রূপান্তর করে থাকেন, যেমন পিডিএফ ফাইল থেকে থাম্বনেইল তৈরি করা, -flattenআপনি যা চান তা করবে না (এটি সমস্ত পৃষ্ঠার জন্য সমস্ত চিত্রকে এক চিত্রতে সমতল করবে)। অন্যদিকে, -alpha removeকৌশলটি ব্যবহার করে এখনও একাধিক চিত্র তৈরি হবে, প্রতিটি স্বচ্ছতা অপসারণ করেছে।


5

মনে হচ্ছে আপনার কমান্ডটি সঠিক তাই PNG () এর সমর্থন হারিয়ে যাওয়ার কারণে সমস্যা হতে পারে। আপনি convert -list configureনিম্নলিখিতগুলি দিয়ে যাচাই বা চেষ্টা করতে পারেন :

sudo yum install libpng libpng-devel

1
হ্যা ধন্যবাদ; এই (পুরাতন) ইস্যুটি "গ্রাফিক্স ম্যাজিক" -র একটি বাগ ছিল, যা একটি কাঁটাচামচ / পুনর্লিখন / যা কিছু "চিত্রের ম্যাগিক" এর মধ্যে রয়েছে
পয়েন্টি

@ পয়েন্ট আমি দেখি! কৌতূহলের বাইরে, সমস্যার আসল কারণ কী ছিল (এটি কেবলমাত্র একটি সংস্করণে ছিল)?
অ্যালাস্টার

আচ্ছা আমি আসলেই ঠিক জানি না; এটা ঠিক একটি বাগ ছিল। আমি গ্রাফিক্স ম্যাগিকের রক্ষণকারী নই তাই তাদের কোড সম্পর্কে আমার কোনও অন্তর্দৃষ্টি নেই। আমি অনুমান করি এমন এক পর্যায়ে আবার চেষ্টা করা দরকার।
পয়েন্টটি

উবুন্টু এটা আছে না? এখানে libpng12-0 কিন্তু এখনও কার্যকর হয় না :(
কুম্ভ শক্তি

আমি libpng12-0ইনস্টলড এবং ওয়ার্কিং সহ উবুন্টু 13.04 ব্যবহার করছি । আপনি যদি এটি চালান তবে আপনি পিএনজি দেখতে পাচ্ছেন? convert -list configure | grep \png
অ্যালাস্টার

5

এটি আপনার প্রশ্নের ঠিক উত্তর নয়, তবে কীভাবে আলফা চ্যানেলটি অপসারণ করতে হবে তা বোঝার চেষ্টা করার সময় আমি আপনার প্রশ্নটি পেয়েছি, তাই আমি এই উত্তরটি এখানে যুক্ত করার সিদ্ধান্ত নিয়েছি:

আপনি যদি চিত্রগ্রাহক ব্যবহার করে আলফা চ্যানেলটি সরাতে চান তবে আপনি এই আদেশটি ব্যবহার করতে পারেন:

mogrify -alpha off ./*.png

3

স্বাগতম বলে মনে হচ্ছে "গ্রাফিক্স ম্যাজিক" ওভার "ইমেজ ম্যাজিক" এর ওপরে কিছু মোটামুটি কিনারা রয়েছে - যখন আমি জেনুইন ক্রুফটি পুরাতন "ইমেজ ম্যাজিক" পুনরায় ইনস্টল করি, তখন উপরের কমান্ডটি পুরোপুরি ভালভাবে কাজ করে।

সম্পাদনা করুন , দীর্ঘদিন পরে - এই দিনগুলির মধ্যে একটিতে আমি "গ্রাফিক্স ম্যাজিক" এই সমস্যাটি স্থির করেছে কিনা তা পরীক্ষা করে দেখব।


2

আমারও দরকার: উভয় -alpha backgroundএবং -flatten, বা or-fill

আমি একটি স্বচ্ছ পটভূমি এবং মাঝখানে একটি লাল বিন্দু সহ একটি নতুন পিএনজি করেছি।

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 সঠিক সবুজ সঙ্গে স্বচ্ছ পিক্সেল প্রতিস্থাপন।


বর্তমান করে ImageMagick সঙ্গে সঠিক কমান্ড হবে convert image.png -background green -alpha background -alpha off green.pngবা convert image.png -background green -alpha background -alpha remove green.pngবা convert image.png -background green -flatten green.png
fmw42

1

নন-কমান্ড লাইন বিকল্প: উইন্ডোজ পেইন্টে পিএনজি ফাইলটি খুলুন এবং সংরক্ষণ করুন ক্লিক করুন।


0

এটি ২ য় শীর্ষে স্বচ্ছতার সাথে প্রথম স্থান রেখে একটি চিত্র তৈরি করে

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

মূলত এই পোস্টে টিপটি পাওয়া গেছে


0

ফাইল থেকে আসলে আলফা চ্যানেলটি সরাতে, আলফা অফ বিকল্পটি ব্যবহার করুন :

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

1
আসলে, আপনার সরবরাহিত লিঙ্কটি বলে: "এটি চিত্রের সাথে যুক্ত আলফা চ্যানেলটি মুছে ফেলা বা ভাগ্যছাড়া করে না, এটি চ্যানেলের চিত্রটিতে যে কোনও প্রভাব ফেলবে।" সত্যই আলফা চ্যানেল অপসারণ করতে, আমার উত্তর দেখুন।
রোক ক্রালজ

0

আমি এই প্রশ্ন এবং উত্তরগুলি দেখেছি যা সত্যই আমাকে সহায়তা করে কিন্তু তখন আমার অনেক ফাইলের জন্য এটি করা দরকার ছিল, সুতরাং আপনার যদি একটি ফোল্ডারে একাধিক চিত্র (পিএনজি চিত্র) থাকে এবং আপনি এটি সকলের জন্য করতে চান:

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

-1

এটি - আলফা বন্ধ, না-আলফা সরান! আইওএস অ্যাপ স্টোর আপলোড ব্যর্থ হয় যখন কোনও আইকনে একটি আলফা চ্যানেল থাকে !!

এটি কীভাবে করবেন তা এখানে: মোগ্রিফি-আলফা অফ * .png

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.