স্কেলবিটম্যাপ তৈরি করতে ফিল্টার পরামিতি কী করে?


210

ঘোষণাটি android.graphics.Bitmap.createScaledBitmapহ'ল

public static Bitmap createScaledBitmap
  (Bitmap src, int dstWidth, int dstHeight, boolean filter)

যাইহোক, ডকুমেন্টেশন কোনও পরামিতি ব্যাখ্যা করে না। তাদের সব বাদে বেশ সুস্পষ্ট boolean filter। কেউ কি জানে এটা কি করে?

উত্তর:


86

এসকেআইএ উত্স-কোডের মাধ্যমে একটি দ্রুত খনন ইঙ্গিত দেয় যে (কমপক্ষে ডিফল্ট হিসাবে) ফিল্টার পতাকা এটি এটিকে সোজা দ্বিপদী দ্বিখণ্ডিত করে তোলে। প্রত্যাশিত পরিণতিগুলি কী তা দেখতে উইকিপিডিয়া বা আপনার প্রিয় গ্রাফিক্সের রেফারেন্সটি পরীক্ষা করুন। Ditionতিহ্যগতভাবে, আপনি চিত্রগুলি আপসাইজ করার সময় বিলিনিয়ার বা বাইকুবিক ইন্টারপোলেশন করতে চান এবং চিত্রগুলি ডাউনসাইজ করার সময় ক্ষেত্রটি গড় করতে চান। আমি এই ধারণাটি পেয়েছি (যদিও আমি সংশোধন করে খুশি হয়েছি) যে অ্যান্ড্রয়েড / স্কিয়া ফিল্টারিং ছাড়াই ডাউনসাইজ করার সময় সহজ সাবসাম্পলিং করে, তাই আপনি ডাউনসাইজিংয়ের পরেও ফিল্টারিং থেকে আরও ভাল ফলাফল পাওয়ার সম্ভাবনা রয়েছে। (50% স্কেল কমানোর একটি ধারাবাহিক জড়িত জড়িত সাথে উচ্চমানের ডাউনসাইজিংয়ের একটি বিকল্প পদ্ধতি রয়েছে http:// http://today.java.net/pub/a/today/2007/04/03/perils-of- চিত্র getscaledinstance.html বিস্তারিত জানার জন্য.)


5
যদি আপনি এটি মিথ্যা পাস করেন তবে এটি কী করবে? নিকটতম প্রতিবেশী?
clahey

এছাড়াও, আপনি কি জানেন যে আপনি যদি ফিল্টার = সত্যটি পাস করেন তবে এটি এলাকা গড় করছে কিনা?
clahey

বাহ্যিক উত্সগুলি উল্লেখ না করে পার্থক্যটি কী তা অনুভূতি পেতে আপনার একটি চিত্র যুক্ত করা উচিত। লিঙ্কগুলি মারা যায়, উত্সগুলি বিলুপ্ত হয়।
মার্টেন

253

করণের উত্তরটি প্রসারিত করার জন্য: সাধারণ নিয়ম হিসাবে আপনি আপনার চিত্রটি নিচে রেখে দিলে কোনও পার্থক্য দেখতে পাবেন না , তবে আপনি যদি এটিটি ছোট করে ফেলছেন তবে আপনি তা করতে পারবেন

পাসিংয়ের filter = falseফলে ব্লক, পিক্সেল্লেটেড ইমেজ আসবে।

পাসিং filter = trueআপনাকে মসৃণ প্রান্তগুলি দেবে।

যাইহোক, EIYeante মন্তব্যগুলিতে ইঙ্গিত হিসাবে, আপনি এখনও একটি পার্থক্য দেখতে পারেন। এটি তাদের উদাহরণ চিত্র।


6
@ মিরকো - না, ঠিক আছে: এটি এখন যে কোনও মিনিটে আমাকে পপুলিস্ট ব্যাজ উপার্জন করবে। :)
তেদায়ী

@ এলিয়্যান্ট - আপনার কি উদাহরণ আছে? কিছু ইনপুট এবং আউটপুট চিত্র দুর্দান্ত হবে। ধন্যবাদ।
21'13

8
এই উদাহরণে এ @teedyay দেখুন: dl.dropboxusercontent.com/u/18446310/... মূল চিত্র 1232x2048 একটি রেজল্যুশন আছে। আমি এই কোডটি দিয়ে একটি ভারী ডোনস্কেলিং bm = MediaStore.Images.Media.getBitmap(this.getContentResolver(), intent.getData()); resizedBitmap = Bitmap.createScaledBitmap(bm, 150, 150, true); resizedBitmap.compress(Bitmap.CompressFormat.JPEG, 95, out);করছি : আমি কেবল ফিল্টার প্যারামিটারটি পরিবর্তন করছি।
এলয়্যান্তে

2
এই পতাকাটি বিভ্রান্তিকর। অ্যান্টি-এলিয়াসিং রোধ করার জন্য পুনরায় মডেলিংয়ের আগে আমরা কীভাবে স্মুথিংয়ের সাথে ডাউনসাম্পল করতে পারি?
সাম

1
লিঙ্কটি ভেঙে গেছে @teedyay
সাগর

2

ফিল্টার চিত্রের জন্য FILTER_BITMAP_FLAG সেট করবে যা বিটম্যাপের স্যাম্পলিংকে প্রভাবিত করে যখন তারা আপনার সরবরাহ করা মানের ভিত্তিতে রূপান্তরিত হয়।


2
বিটম্যাপের নমুনার উপর এর কী প্রভাব রয়েছে?
ক্লিমে

বিটম্যাপ স্যাম্পলিং সম্পর্কে আমি বেশি কিছু জানি না, আপনি বিশদ জন্য নীচের উইকি পৃষ্ঠাটি চেক করতে পারেন। en.wikedia.org/wiki/Resampling_%28bitmap%29
করণ

"বিটম্যাপের নমুনা প্রভাবিত করে" ঠিক কী? এটি একটি ভাল প্রভাব বা খারাপ?
উইলিয়াম ডেনিস

@ উইলিয়ান ডেনিস: উপরের মন্তব্যটি দেখুন। আমি বিশদটি জানি না এবং আমি এখনও এটি চেষ্টা করি নি।
করণ

0

পার্টিতে কিছুটা দেরি হলেও আমি ভেবেছিলাম কিছু নমুনা চিত্র এই বিষয়টি স্পষ্ট করতে পারে।

অ্যান্ড্রয়েডের এপিআই কোন ধরণের ফিল্টার প্রয়োগ করা হবে তা নির্দিষ্ট করে না, তাই আমার ধারণা অনুমান করা হয়: আপনি কি চান যে আপনার পিক্সেলগুলি যেমন রয়েছে (যেমন আপনি 8-বিট আর্টে চাইবেন) বা রূপান্তরটি প্রয়োগ করা ঠিক আছে কি? চিত্রটিকে আরও স্বচ্ছল করুন (যেমন আপনি ফটোগ্রাফগুলিতে চান)।

কিনা এবং কিভাবে ফিল্টার সম্পর্কে একটি সাধারণ প্রশ্ন নেই সুপারইউজার

জেফ আতউড বলেছেন:

একটি বৃহত্তর চিত্রকে ছোট আকারে তৈরি করার সময় আপনি একটি হালকা শার্পিং এফেক্ট এবং একটি ছোট চিত্রকে আরও বড় আকারে তৈরি করার সময় একটি হালকা ঝাপসা প্রভাব চান।

চিত্র ফিল্টার তুলনা করা

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