Commandité

অ্যান্ড্রয়েডে ইমেজ প্রসেসিং - ইমেজ রিসাইজিং

0
4

এন্ড্রয়েডে বড় ইমেজ প্রসেসিং  করতে গেলে অনেক সময় লাগবে। অনেক গুলো কাজই আমাদের পিক্সেল বাই পিক্সেল এ ক্যালকুলেট করতে হবে। বড় ইমেজ হলে তখন অ্যাপ স্লো হয়ে যাবে। এ জন্য আমরা যখন ইমেজ একটা ওপেন করব, তখন ইমেজটি ছোট করে নিব।

 

টিউটোরিয়াল সিম্পল রাখার জন্য আমরা Drawable ফোল্ডারে একটি ইমেজ রেখে কাজ করব। অ্যাপে গ্যালারি থেকে ইমেজ কিভাবে পিক করতে হয়, তা নিয়ে বিস্তারিত নিচের লেখা থেকে জানা যাবে।ঃ

একটি ইমেজ ভিউ রেখেছি। ইমেজ ভিউতে ইমেজ আউটপুট দেখাবো।  আর একটি বাটন রেখেছি, যা দিয়ে আমাদের আউটপুট ইমেজটি সেভ করতে পারব।

activity_main.xml ফাইলটিঃ

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <Button android:text="Save Image"
        android:id="@+id/save"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    </Button>

    <ImageView
        android:id="@+id/imageView"
        android:src="@drawable/ic_launcher"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </ImageView>
</LinearLayout>

জাভা কোড, বিস্তারিত নিচেঃ

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v4.content.ContextCompat;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;


public class MainActivity extends Activity {

    private Bitmap bitmap;
    private ImageView imageView;
    Button save;
    Drawable myImage;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        imageView = (ImageView) findViewById(R.id.imageView);

        // read image from Drawable
        myImage = ContextCompat.getDrawable(this, R.drawable.jack);
        bitmap = ((BitmapDrawable) myImage).getBitmap();


        // calculate aspect ratio
        float aspectRatio = bitmap.getWidth() /
                (float) bitmap.getHeight();
        int width = 600;
        int height = Math.round(width / aspectRatio);

        // resizing
        bitmap =  Bitmap.createScaledBitmap(bitmap, width, height, false);
        imageView.setImageBitmap(bitmap);



        // saving to gallery
        save = (Button)findViewById(R.id.save);
        save.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {

                MediaStore.Images.Media.insertImage(getContentResolver(), bitmap, "New image name", "Image description");


            }
        });


    }

}

আমরা একটি বিটম্যাপ ইমেজকে রিসাইজ করছি। তার জন্য কোড হচ্ছে Bitmap.createScaledBitmap(bitmap, width, height, false); এখানে width এবং height এ 200 এবং 200 দিলে ইমেজটি রিসাইজ হয়ে 200*200 পিক্সেলের একটি ইমেজ হয়ে যাবে।

আমরা যে ইমেজ ওপেন করব, তা রিসাইজ করতে হলে তার aspect ratio ঠিক রাখতে হবে। aspect ratio হচ্ছে ইমেজের width এবং height এর রেশিও। আমাদের অ্যাপে ইমেজের ওয়াইড ঠিক করে দিয়েছি 600, aspect ratio ঠিক রেখে height হিসেব করে নিয়েছি। এবং শেষে ইমেজ ভিউতে লোড করেছি। এই!

Rechercher
Catégories
Lire la suite
Tech
কীবোর্ডেই ফ্রিতে ব্যবহার করুন ChatGPT | Techtunes | টেকটিউনস
মজিলার নির্বাচিত সাতটি বেস্ট ফায়ারফক্স 3 অ্যাডঅন দুঃসাহসী টিনটিন
Par Nettumi 2026-09-25 04:02:36 0 54
Emploi
প্রধান বিদ্যুৎ পরিদর্শকের দপ্তর নিয়োগ বিজ্ঞপ্তি ২০২৬ OCEI Job Circular 2026
4.4/5 - (17 votes)প্রধান বিদ্যুৎ পরিদর্শকের দপ্তর নিয়োগ বিজ্ঞপ্তি ২০২৬ (Office of the Chief...
Par Nettumi 2026-09-24 18:44:10 0 48
Hacking Course
[HOT] TIktok Video Downloader ওয়েবসাইট তৈরি করুন সম্পূর্ণ Advance! [No Api + No Limit] 🔥
WELLCOME BACK 𝑯𝒆𝒍𝒍𝑜 𝒈𝒖𝒚𝒔, 𝒉𝑜𝒘 𝑎𝑟𝑒 𝑦𝑜𝑢? 𝐻𝑜𝑝𝑒 𝑦𝑜𝑢 𝑎𝑟𝑒 𝑑𝑜𝑖𝑛𝑔 𝑤𝑒𝑙𝑙! 𝑆𝑜 𝑙𝑖𝑘𝑒 𝑒𝑣𝑒𝑟𝑦 𝑑𝑎𝑦, 𝑡𝑜𝑑𝑎𝑦 𝐼𝑎𝑚...
Par Nettumi 2026-09-25 16:59:44 0 33
Nulled
এফিলিয়েট মার্কেটিং কি? এফিলিয়েট মার্কেটিং থেকে কিভাবে আয় করা যায়? | Techtunes | টেকটিউনস
বিশ্বের সবচেয়ে বড় পাঁচটি যুদ্ধ যাতে নিহত হয়েছিল লক্ষ লক্ষ লোক Exclusively @ সাবটাইটেল...
Par Nettumi 2026-09-22 14:57:00 0 41
Nulled
Medixal - Modern Medical & Healthcare HTML Template
Medixal – Modern Medical & Healthcare HTML Template Free Download. Medixal is...
Par Nettumi 2026-09-17 18:40:28 0 37
‎ ‎ ‎
Nettumi https://nettumi.com