BMP (বিটম্যাপ) ডেটা বিন্যাস। কিভাবে একটি .BMP ফাইল খুলবেন? কিভাবে উইন্ডোজ 7 এ bmp ফাইল খুলবেন

এই নিবন্ধটি bmp গ্রাফিক বিন্যাস দেখতে কেমন তা নিয়ে। যদিও এটি একটি সহজ ফরম্যাট, এই ফরম্যাটের অনেক বৈচিত্র্যের কারণে, সমস্ত পয়েন্ট স্পষ্ট নয়। সুতরাং, জল ঢালা বন্ধ, চলুন শুরু করা যাক.

বিন্যাস কাঠামো

bmp ফরম্যাট (বিটম্যাপ শব্দ থেকে - বিট ম্যাপ, বা, রাশিয়ান ভাষায়, বিট অ্যারে) হল একটি অসংকুচিত (বেশিরভাগ) চিত্র যা উইন্ডোজ ওএসে পড়া এবং প্রদর্শন করা বেশ সহজ, যেটিতে বিশেষ API ফাংশন রয়েছে যা সাহায্য করে।

প্রথমে, আসুন bmp-এ ডেটার গ্রাফিক্যাল উপস্থাপনা দেওয়া যাক (এমএসডিএন থেকে নেওয়া ছবি)।

শুরুতে একটি ফাইল হেডার (BITMAPFILEHEADER) আছে। এটি নিম্নরূপ বর্ণনা করা হয়েছে:

bfTypeফাইলের ধরন নির্ধারণ করে। এখানে তাকে বিএম হতে হবে। আপনি যদি একটি টেক্সট এডিটর (অথবা আরও ভাল, একটি হেক্সাডেসিমাল এডিটর) কোনো BMP ফাইল খোলেন, আপনি দেখতে পাবেন যে প্রথম দুটি অক্ষর হল BM (বিটম্যাপ শব্দ থেকে, আপনি সম্ভবত ইতিমধ্যে অনুমান করেছেন)।
bfSizeবাইটে ফাইলের আকার। কঠোরভাবে বলতে গেলে, আপনার এটি গণনা করা উচিত (যা সুপারিশ করা হয়), কিন্তু আমি ফাইলের আকারটি ভুলভাবে সেট করেছি (যদিও উদ্দেশ্যমূলকভাবে নয় :)) এবং কোনও সমস্যা ছিল না (ACDSee সমস্যা ছাড়াই পড়ুন, আমার প্রোগ্রাম কাজ করেছে), তবে আমি আপনাকে সুপারিশ করছি না এটি ইচ্ছাকৃতভাবে ভুলভাবে লিখুন, হঠাৎ একটি বিবেকপূর্ণ প্রোগ্রাম উপস্থিত হবে যা এই আকারটিকে আসলটির সাথে তুলনা করবে এবং সিদ্ধান্ত নেবে যে এটি bmp নয়, অন্য কিছু। আদর্শভাবে, সমস্ত প্রোগ্রাম, এটি নিশ্চিত করার জন্য যে এটি একটি আসল bmp এবং নকল নয়, প্রথমে, bfType-এ "BM" (কোট ছাড়া) আছে কিনা তা পরীক্ষা করা উচিত এবং দ্বিতীয়ত, সেই bfSize ফাইলের আকারের সমান।
bfReserved1 এবং bfReserved2সংরক্ষিত এবং শূন্য হতে হবে.
bfOffBits. এটি এই কাঠামোর সবচেয়ে গুরুত্বপূর্ণ ক্ষেত্রগুলির মধ্যে একটি। এটি দেখায় যে বিটম্যাপ নিজেই ফাইলের শুরুর সাথে তুলনা করে কোথায় শুরু হয় (অথবা, যেমন MSDN বলে, "BITMAPFILEHEADER কাঠামোর শুরু থেকে"), যা চিত্রটি বর্ণনা করে। অর্থাৎ, অ্যারের শুরুতে যাওয়ার নিশ্চয়তা পেতে আপনাকে অবশ্যই লিখতে হবে:

typedef struct tagBITMAPINFOHEADER
{
DWORD বাই সাইজ;
দীর্ঘ দ্বিপ্রস্থ;
দীর্ঘ দ্বি-উচ্চতা;
শব্দ বাইপ্লেন;
শব্দ biBitCount;
DWORD বাই-কম্প্রেশন;
DWORD biSizeImage;
লং বাইএক্সপেলসপারমিটার;
লং বাইওয়াইপেলসপারমিটার;
DWORD biClrUsed;
DWORD biClr গুরুত্বপূর্ণ;
) BITMAPINFOHEADER, * PBITMAPINFOHEADER;

দ্বি-আকারগঠন নিজেই আকার. এটি নিম্নরূপ শুরু করা প্রয়োজন: bih.biSize = sizeof(BITMAPINFOHEADER);
এখানে আবার আমরা অনুমান করব যে bih নিম্নরূপ ঘোষণা করা হয়েছে: BITMAPINFOHEADER bih;
biwidth এবং biHeightছবির প্রস্থ এবং উচ্চতা যথাক্রমে পিক্সেলে সেট করুন।
বাই প্লেনপ্লেনের সংখ্যা নির্দিষ্ট করে। আপাতত এটি সর্বদা 1 এ সেট করা আছে।
biBitCount- পিক্সেল প্রতি বিটের সংখ্যা। আমরা নীচে এই সম্পর্কে আরো কথা বলতে হবে.
দ্বি-কম্প্রেশনসংকোচনের ধরন নির্দেশ করে। আশ্চর্য বা ভয় পাবেন না যে bmp হঠাৎ কম্প্রেশন অনুভব করে। আমি ব্যক্তিগতভাবে কোন সংকুচিত bmp দেখিনি (তবে আমি বলছি না যে তারা বিদ্যমান নেই)। যদি কোন কম্প্রেশন না থাকে, তাহলে এই পতাকাটি BI_RGB তে সেট করতে হবে। এই নিবন্ধে আমরা অসংকুচিত বিন্যাস সম্পর্কে কথা বলছি, তাই আমি অন্যান্য পতাকার তালিকাও করব না। মনে হচ্ছে একই কাঠামো JPEG এবং PNG ফাইলগুলিতে ব্যবহার করা হয়েছে, কারণ Windows 98 থেকে শুরু করে সেখানে BI_JPEG বিকল্পগুলি উপস্থিত হয়েছিল, যা দেখায় যে এই ছবিটি JPEG এবং BI_PNG, এটি PNG (আমি Jpeg ফর্ম্যাট সম্পর্কে কিছুই জানি না, আমি MSDN-এ যা লেখা আছে তার উপর ভিত্তি করে আমি এই সিদ্ধান্ত নিয়েছি)।
biSize Imageবাইটে চিত্রের আকার নির্দেশ করে। যদি চিত্রটি সংকুচিত না হয় (অর্থাৎ, পূর্ববর্তী ক্ষেত্রটি BI_RGB তে সেট করা হয়), তাহলে এখানে একটি শূন্য লেখা উচিত। biXPelsPerMeterএবং biYPelsPerMeterযথাক্রমে, চূড়ান্ত ডিভাইসের অনুভূমিক এবং উল্লম্ব রেজোলিউশন (পিক্সেল প্রতি মিটারে) নির্দেশ করুন যেখানে বিটম্যাপ (রাস্টার) আউটপুট হবে। একটি অ্যাপ্লিকেশন এই মানটি ব্যবহার করে সম্পদের একটি গ্রুপ থেকে পছন্দসই ডিভাইসের জন্য সবচেয়ে উপযুক্ত বিটম্যাপ নির্বাচন করতে পারে। আসল বিষয়টি হ'ল bmp ফর্ম্যাটটি মূলত একটি হার্ডওয়্যার-স্বাধীন রাস্টার, অর্থাৎ, যখন যা পাওয়া যায় তার উপস্থিতি এই রাস্টারটি কীসের উপর প্রজেক্ট করা হয়েছে তার উপর নির্ভর করে না (তাই বলতে হবে)। উদাহরণস্বরূপ, একটি ছবি মনিটরের স্ক্রিনে আঁকা বা প্রিন্টারে মুদ্রিত হোক না কেন তা একই রকম দেখাবে। কিন্তু ডিভাইসগুলির রেজোলিউশন ভিন্ন, এবং এই প্যারামিটারগুলি ব্যবহার করা হয় এমন উপলব্ধগুলি থেকে সবচেয়ে উপযুক্ত ছবি নির্বাচন করার জন্য এটি সঠিকভাবে।
biClr ব্যবহার করা হয়েছেটেবিল থেকে ব্যবহৃত রঙের সংখ্যা নির্ধারণ করে। যদি এই মানটি শূন্য হয়, তাহলে রাস্টারটি biBitCount মান দ্বারা অনুমোদিত সর্বাধিক সংখ্যক রঙ ব্যবহার করে। এটি শুধুমাত্র সংকুচিত ছবির জন্য প্রাসঙ্গিক। যদি biClrUsed অ-শূন্য হয় এবং biBitCount 16-এর কম হয়, তাহলে biClrUsed গ্রাফিক্স ইঞ্জিন বা ডিভাইস ড্রাইভারের রঙের বর্তমান সংখ্যা নির্ধারণ করে। যদি biBitCount 16-এর চেয়ে বড় বা সমান হয়, তাহলে biClrUsed বর্তমান সিস্টেম প্যালেট অপ্টিমাইজ করতে ব্যবহৃত রঙের টেবিলের আকার নির্ধারণ করে।
biClr গুরুত্বপূর্ণ- এটি গুরুত্বপূর্ণ রঙের সংখ্যা। অঙ্কনটি চিত্রিত করার জন্য প্রয়োজনীয় রঙের সংখ্যা নির্ধারণ করে। যদি এই মান 0 হয় (যেমন এটি সাধারণত হয়), তাহলে সমস্ত রং গুরুত্বপূর্ণ বলে বিবেচিত হয়।

BMP ফরম্যাটের প্রকারভেদ

সব ধরনের bmp ফরম্যাট শর্তসাপেক্ষেদুটি প্রকারে বিভক্ত করা যেতে পারে: প্যালেট এবং নন-প্যালেট। যে, প্যালেট একটি প্রদত্ত বিন্যাসে ব্যবহার করা হয় কি না। অনুগ্রহ করে মনে রাখবেন যে প্যালেটটি এমনকি প্যালেট-মুক্ত বিন্যাসেও হতে পারে তবে এটি সেখানে ব্যবহার করা হয় না। প্যালেটবিহীন bmps-এ, একটি নির্দিষ্ট স্থান থেকে শুরু করে ফাইলের মধ্যে থাকা বিটগুলি থেকে সরাসরি রঙ গণনা করা হয়। এবং প্যালেটগুলিতে, প্রতিটি বাইট এক বা একাধিক পিক্সেল বর্ণনা করে এবং বাইট (বা বিট) মানগুলি প্যালেটের রঙের সূচক। শুরু করার জন্য, আমি একটি টেবিল প্রদান করব যা সম্ভাব্য বিকল্পগুলির তুলনা করে। ছবির ধরন (প্যালেট বা প্যালেট-মুক্ত) পিক্সেল প্রতি কত বিট দেওয়া হয়েছে তার উপর নির্ভর করে, অর্থাৎ BITMAPINFOHEADER কাঠামোর biBitCount মানের উপর।

biBitCountপ্যালেট বা নন-প্যালেট বিন্যাসরঙের সর্বাধিক সম্ভাব্য সংখ্যামন্তব্য 1 প্যালেট2 একটি দুই রঙের, মনে মনে, অগত্যা কালো এবং সাদা, প্যালেট ছবি. যদি রাস্টার বিট (যা ঠিক নীচে) পুনরায় সেট করা হয় (0 এর সমান), তবে এর অর্থ হল প্যালেট থেকে প্রথম রঙটি এই জায়গায় থাকা উচিত এবং যদি সেট করা হয় (1 এর সমান), তবে দ্বিতীয়টি। 4 প্যালেট16 প্রতিটি বাইট 2 পিক্সেল বর্ণনা করে। এখানে MSDN থেকে একটি উদাহরণ দেওয়া হল যদি চিত্রের প্রথম বাইটটি 0x1F হয়, তবে এটি দুটি পিক্সেলের সাথে মিলে যায়, প্রথমটির রঙটি প্যালেটের দ্বিতীয় রঙ (কারণ কাউন্টডাউনটি শূন্য থেকে শুরু হয়), এবং দ্বিতীয়টি হল প্যালেটের 16 তম রঙ। 8 প্যালেট256 সবচেয়ে সাধারণ বিকল্পগুলির মধ্যে একটি। কিন্তু একই সময়ে, সহজ বেশী. প্যালেটটি এক কিলোবাইট নেয় (তবে এটিতে গণনা না করাই ভাল)। এক বাইট এক রঙ। তাছাড়া, এর মান হল প্যালেটের রঙের সংখ্যা। 16 প্যালেট নেই2^16 বা 2^15এটি সবচেয়ে বিভ্রান্তিকর বিকল্প। চলুন শুরু করা যাক যে এটি প্যালেট-মুক্ত, অর্থাৎ, রাস্টারে প্রতি দুই বাইট (একটি শব্দ শব্দ) অনন্যভাবে একটি পিক্সেল সংজ্ঞায়িত করে। তবে এখানে যা ঘটে: 16 বিট রয়েছে এবং 3টি রঙের উপাদান রয়েছে (লাল, সবুজ, নীল)। কিন্তু 16 3 দ্বারা বিভক্ত হতে চায় না। তাই এখানে দুটি বিকল্প আছে। প্রথমটি হল 16 নয়, 15 বিট ব্যবহার করা, তারপর প্রতিটি রঙের উপাদানের জন্য 5 বিট রয়েছে। এইভাবে আমরা সর্বাধিক 2^15 = 32768 রং ব্যবহার করতে পারি এবং একটি ট্রিপল R-G-B = 5-5-5 পেতে পারি। কিন্তু তারপরে 16-এর মধ্যে একটি সম্পূর্ণ বিট নিরর্থকভাবে নষ্ট হয়ে যায় কিন্তু এটি এমন হয় যে আমাদের চোখ, সমস্ত রঙের মধ্যে, সবুজকে আরও ভালভাবে উপলব্ধি করে, তাই আমরা সবুজ উপাদানটিকে এটি একটি বিট দেওয়ার সিদ্ধান্ত নিয়েছি, অর্থাৎ আমরা পাই। ট্রিপল R-G-B = 5-6-5, এবং এখন আমরা 2^16 = 65536 রং ব্যবহার করতে পারি। কিন্তু সবচেয়ে অপ্রীতিকর জিনিস উভয় বিকল্প ব্যবহার করা হয়। MSDN পরামর্শ দেয় যে কতগুলি রঙ ব্যবহার করা হয়েছে তা আলাদা করার জন্য, এই মান দিয়ে BITMAPINFOHEADER কাঠামো থেকে biClrUsed ক্ষেত্রটি পূরণ করুন। প্রতিটি উপাদান নির্বাচন করতে আপনাকে নিম্নলিখিত মুখোশগুলি ব্যবহার করতে হবে। 5-5-5 ফরম্যাটের জন্য: নীল উপাদানের জন্য 0x001F, সবুজের জন্য 0x03E0 এবং লালের জন্য 0x7C00। 5-6-5 ফরম্যাটের জন্য: যথাক্রমে 0x001F - নীল, 0x07E0 - সবুজ এবং 0xF800 লাল উপাদান। 24 প্যালেট নেই2^24 এবং এটি সবচেয়ে সহজ বিন্যাস। এখানে 3 বাইট 3 রঙের উপাদান সংজ্ঞায়িত করে। অর্থাৎ প্রতি বাইটে একটি কম্পোনেন্ট। আমরা কেবল RGBTRIPLE কাঠামোটি পড়ি এবং এর rgbtBlue, rgbtGreen, rgbtRed ক্ষেত্রগুলি ব্যবহার করি। তারা সেই ক্রমে যায়। 32 প্যালেট নেই2^32 এখানে 4 বাইট 3 টি উপাদান সংজ্ঞায়িত করে। কিন্তু, যাইহোক, এক বাইট ব্যবহার করা হয় না। এটি ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ, আলফা চ্যানেলের জন্য (স্বচ্ছতা)। এই ক্ষেত্রে, RGBQUAD কাঠামো ব্যবহার করে রাস্টার পড়া সুবিধাজনক, যা নিম্নরূপ বর্ণনা করা হয়েছে:

bmp ফরম্যাটে ডেটা স্টোরেজ

আচ্ছা, এখন আমরা সবচেয়ে আকর্ষণীয় অংশে আসি। BITMAPFILEHEADER এবং BITMAPINFOHEADER স্ট্রাকচারের পরে প্যালেটটি আসে। অধিকন্তু, যদি বিন্যাসটি প্যালেট-মুক্ত হয়, তবে এটি সেখানে নাও থাকতে পারে, তবে, আপনার এটির উপর নির্ভর করা উচিত নয়। আসল বিষয়টি হল যে আমি যখন সবেমাত্র bmp ফর্ম্যাটটি বুঝতে শুরু করেছিলাম, আমি একটি বইতে পড়েছিলাম যে, অনুমিতভাবে, যদি বিন্যাসটি প্যালেট-মুক্ত হয়, তবে এটির কোনও প্যালেট নেই। এমনকি দুটি ছবি ছিল - বিন্যাস চিত্র: একটি প্যালেট সহ, অন্যটি ছাড়া। এবং সেই সময়ে আমি একটি প্রোগ্রাম লিখছিলাম যেটি অধ্যবসায়ীভাবে bmp ফাইলগুলির সাথে কাজ করে। এবং আমাকে 256 রঙ থেকে 24-বিট (যদি থাকে) অস্থায়ী ফাইলগুলিতে ইনকামিং ইমেজগুলি রূপান্তর করতে হয়েছিল। এবং আমি কেবল 24-বিটে একটি প্যালেট তৈরি করিনি (BITMAPFILEHEADER কাঠামোর bfOffBits সাইজফ(BITMAPFILEHEADER) + sizeof (BITMAPINFOHEADER) এর যোগফলের সমান ছিল, এবং ইনকামিং 24-বিটগুলি অপরিবর্তিত রেখেছিলাম। 256-রঙের রাস্টারগুলির সাথে সবকিছু যতক্ষণ না আমি একটি 24-বিট ইমেজ দেখতে পাইনি যেখানে প্রয়োজনীয় অংশের পরিবর্তে নীচের অংশে আবর্জনা দেখানো হয়েছিল ততক্ষণ পর্যন্ত আমি আসল ফাইলের আকারের সাথে তুলনা না করা পর্যন্ত কী ভুল ছিল তা বুঝতে পারিনি তাত্ত্বিক যেটি সেখানে থাকা উচিত ছিল যদি কোনও প্যালেট থাকে না (যদিও আমি যে সমস্ত ছবি দেখেছি তার প্যালেটের আকার 256 রঙের, বা 1Kb), সর্বদা ফাইলের মধ্য দিয়ে যান, bfOffBits ব্যবহার করে একের পর এক RGBQUAD স্ট্রাকচার প্যালেটে সব রং ব্যবহার করা হয় না (কিন্তু শুধুমাত্র, উদাহরণস্বরূপ, 16), তারপর প্রায়ই প্যালেট A 256 * 4 = 1024 এর জন্য 256 টি ক্ষেত্র বরাদ্দ করা হয়। 4 হল RGBQUAD কাঠামোর আকার, অর্থাৎ একই এক কিলোবাইট প্রাপ্ত হয়.

প্যালেটের পরপরই রাস্টার নিজেই আসে। এখানেই জিনিসগুলি আরও বিভ্রান্তিকর হয়ে ওঠে। প্রথমত, পিক্সেলগুলি এখানে ফর্ম্যাটের উপর নির্ভর করে উপরের টেবিলে লেখা হিসাবে বর্ণনা করা হয়েছে। এবং তারা নিজেরাই রঙের উপাদানগুলির মান ধারণ করতে পারে (প্যালেট-মুক্তগুলির জন্য), অথবা সেগুলি প্যালেট অ্যারের সূচী হতে পারে। ছবি নিজেই লাইন দ্বারা লাইন রেকর্ড করা হয়. দ্বিতীয়ত, ছবিটি উল্টে দেখা যাচ্ছে। অর্থাৎ, নীচের লাইনটি প্রথমে লেখা হয়, তারপরে শেষ লাইনটি, এবং তাই একেবারে শীর্ষ পর্যন্ত। এবং, তৃতীয়ত, যেমন লেখা আছে, যদি রাস্টার লাইনের আকার 4-এর গুণিতক না হয়, তাহলে এটি 1 থেকে 3 খালি (শূন্য) বাইট দিয়ে প্যাড করা হয় যাতে লাইনের দৈর্ঘ্য অনুচ্ছেদের একটি গুণিতক হয়। এটি সবচেয়ে অপ্রীতিকর জিনিস। আসল বিষয়টি হল যে প্রতিটি ফরম্যাটের জন্য আপনাকে এই সংখ্যক খালি বাইটের সমন্বয় করতে হবে (যদিও আমি সেখানে প্যালেটের কিছু অংশ লিখতে পছন্দ করি, তবে আমি অতিরিক্ত "শূন্য" ভেরিয়েবল তৈরি করতে চাই না যদি এই বাইটগুলি যেভাবেই বাদ দেওয়া হয় এবং কেউ না। তাদের প্রয়োজন)। আমি সূত্র সহ একটি সারণী প্রদান করি যা দেখায় যে কোন বিন্যাসের জন্য লাইনের শেষে কত বাইট যোগ করতে হবে। সেখানে, প্রস্থ ভেরিয়েবল, যেমন আপনি অনুমান করতে পারেন, মানে চিত্রের প্রস্থ। এই সমস্ত সূত্র পরীক্ষামূলকভাবে প্রতিষ্ঠিত হয়েছিল। আমি শুধুমাত্র সর্বাধিক ব্যবহৃত ফরম্যাটের জন্য একটি উদাহরণ দেব। বাকি জন্য, আপনি নিজেই লিখতে পারেন.

উদাহরণ প্রোগ্রাম

আপনি সমস্ত উত্স ডাউনলোড করতে পারেন আমি এখানে বেশি লিখব না। আমি শুধু মন্তব্য সহ ফাংশন দেব।

হ্যালো 1. bmp ফরম্যাটে একটি ছবি তৈরি করা।
এখানে একরঙা ছবি তৈরি হয়। এই ধরনের ফাংশনের তিনটি উদাহরণ রয়েছে: bmp 8, 16 এবং 24 বিট তৈরি করা। আমি শুধুমাত্র 16-বিটের জন্য দেব।

// চলুন 5-5-5 এর মতো 16 বিট বিএমপি ফরম্যাটে একটি ছবি তৈরি করি, যেটি কেবল একরঙা হবে
void CreateBmp555 (char * fname, WORD রঙ)
{
এইচফাইল হ্যান্ডেল;
DWORD RW;
int i, j;

// প্রয়োজনীয় কাঠামো ঘোষণা করুন
BITMAPFILEHEADER bfh;
বিটমপিনফোহেডার বিহ;
BYTE প্যালেট[1024]; // প্যালেট

// চলুন 35 x 50 পিক্সেলের একটি ছবি আছে
int প্রস্থ = 35;
int উচ্চতা = 50;

মেমসেট(প্যালেট, 0, 1024); // প্যালেটে আমাদের শূন্য রয়েছে, সেগুলি পূরণ করুন
মেমসেট (&bfh, 0 , sizeof (bfh) );

Bfh.bfType = 0x4D42 ; // আসুন বোঝাই যে এটি bmp "BM"
bfh.bfOffBits = sizeof (bfh) + sizeof (bih) + 1024 ; // প্যালেটটি 1Kb নেয়, কিন্তু আমরা এটি ব্যবহার করব না
bfh.bfSize = bfh.bfOffBits +
sizeof(রঙ) * প্রস্থ * উচ্চতা +
উচ্চতা * ((আকারের (রঙ) * প্রস্থ) % 4); // চূড়ান্ত ফাইলের আকার গণনা করুন
মেমসেট (&bih, 0 , sizeof (bih) );
bih.biSize = sizeof(bih); // এভাবেই তো হওয়ার কথা
bih.biBitCount = 16 ; // পিক্সেল প্রতি 16 বিট
bih.biClrUsed = 32768 ; // আমরা 5-5-5 ব্যবহার করি
bih.biCompression = BI_RGB; // কম্প্রেশন ছাড়া
bih.biHeight = উচ্চতা;
bih.biWidth = প্রস্থ;
bih.biPlanes = 1 ; // 1 হতে হবে
// এবং অবশিষ্ট ক্ষেত্রগুলি 0 থাকে

HFile = CreateFile(fname, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
যদি (hFile == INVALID_HANDLE_VALUE)
প্রত্যাবর্তন;

// শিরোনাম লিখুন
WriteFile (hFile, & bfh, sizeof (bfh) , & RW, NULL );
WriteFile (hFile, & bih, sizeof (bih) , & RW, NULL );

// প্যালেট লিখুন
WriteFile(hFile, প্যালেট, 1024, &RW, NULL);
জন্য (i = 0; i< Height; i++ )
{
জন্য (j = 0; j< Width; j++ )
{
WriteFile (hFile, & color, sizeof (color) , & RW, NULL );
}

// সীমান্তের সাথে সারিবদ্ধ করুন
WriteFile (hFile, প্যালেট, (sizeof (রঙ) * প্রস্থ) % 4 , & RW, NULL );
}
CloseHandle(hFile);
}

রঙ - ছবির রঙ। এই ভেরিয়েবলের মান অবশ্যই প্রথম টেবিল অনুযায়ী পূরণ করতে হবে। আপনি ACDSee-তে ফলাফলের ছবি দেখতে পারেন, উদাহরণস্বরূপ। আমি শুধু ফটোশপে এটি খোলার চেষ্টা করেছি, কিন্তু দেখা গেল যে এটি এই বিন্যাসে সেগুলি পড়তে পারে না তবে আপনি পারেন :)।

উদাহরণ 2. একটি ছবিকে 8-বিট (256 রঙ) থেকে 24-বিটে রূপান্তর করা।

BOOL Convert256To24 (char * fin, char * fout)
{
BITMAPFILEHEADER bfh;
বিটমপিনফোহেডার বিহ;
int প্রস্থ, উচ্চতা;
RGBQUAD প্যালেট[ 256 ] ;
BYTE * inBuf;
RGBTRIPLE * outBuf;
হ্যান্ডেল hIn, hOut;
DWORD RW;
DWORD অফবিট;
int i, j;

HIN = CreateFile (fin, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
যদি (hIn == INVALID_HANDLE_VALUE)
FALSE ফেরত;

HOut = CreateFile(fout, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
যদি (hout == INVALID_HANDLE_VALUE)
{
ক্লোজহ্যান্ডেল(hIn);
FALSE ফেরত;
}

// ডেটা পড়ুন
ReadFile (hIn, & bfh, sizeof (bfh) , & RW, NULL );
ReadFile (hIn, & bih, sizeof (bih) , & RW, NULL );
ReadFile (hIn, প্যালেট, 256 * sizeof (RGBQUAD) , & RW, NULL );

// রাস্টারের শুরুতে পয়েন্টার সেট করুন
সেটফাইলপয়েন্টার (hIn, bfh.bfOffBits, NULL, FILE_BEGIN) ;
প্রস্থ = bih.biWidth ;
উচ্চতা = bih.biHeight ;
অফবিট = bfh.bfOffBits ;

// মেমরি বরাদ্দ করুন
inBuf = নতুন BYTE [ প্রস্থ ] ;
outBuf = নতুন RGBTRIPLE [ প্রস্থ ] ;

// হেডার পূরণ করুন
bfh.bfOffBits = sizeof (bfh) + sizeof (bih); // আসুন একটি প্যালেট লিখি না
bih.biBitCount = 24 ;
bfh.bfSize = bfh.bfOffBits + 4 * প্রস্থ * উচ্চতা + উচ্চতা * (প্রস্থ % 4 ); // ফাইলের আকার

// এবং বাকি অপরিবর্তিত থাকে
// শিরোনাম লিখুন
WriteFile (hOut, & bfh, sizeof (bfh) , & RW, NULL );
WriteFile (hOut, & bih, sizeof (bih) , & RW, NULL );

// এর রূপান্তর শুরু করা যাক
জন্য (i = 0; i< Height; i++ )
{
ReadFile(hIn, inBuf, Width, & RW, NULL);
জন্য (j = 0; j< Width; j++ )
{
outBuf[j].rgbtRed = প্যালেট[inBuf[j] ] .rgbRed ;
outBuf[j].rgbtGreen = প্যালেট[inBuf[j]] .rgbGreen ;
outBuf[j].rgbtBlue = প্যালেট[inBuf[j]] .rgbBlue ;
}
WriteFile (hOut, outBuf, sizeof (RGBTRIPLE) * প্রস্থ, & RW, NULL );

// প্রান্তিককরণের জন্য আবর্জনা লিখুন
WriteFile (hout, প্যালেট, প্রস্থ % 4 , & RW, NULL );
SetFilePointer(hIn, (3 * প্রস্থ) % 4, NULL, FILE_CURRENT);
}

inBuf মুছে ফেলুন;
outBuf মুছে ফেলুন;
ক্লোজহ্যান্ডেল(hIn);
ক্লোজহ্যান্ডেল(হাউট);
সত্য ফেরত;
}

উৎস এবং গন্তব্য ফাইলের নাম যথাক্রমে ফাংশনে পাস করা আবশ্যক।

BMP ফাইল খোলার সমস্যাগুলির সবচেয়ে সাধারণ কারণ হল আপনার কম্পিউটারে ইনস্টল করা উপযুক্ত অ্যাপ্লিকেশনের অভাব। এই ক্ষেত্রে, BMP বিন্যাসে ফাইলগুলি পরিবেশন করে এমন একটি অ্যাপ্লিকেশন সন্ধান, ডাউনলোড এবং ইনস্টল করার জন্য এটি যথেষ্ট - এই জাতীয় প্রোগ্রামগুলি নীচে উপলব্ধ।

সার্চ সিস্টেম

ফাইল এক্সটেনশন লিখুন

সাহায্য

ক্লু

দয়া করে মনে রাখবেন যে ফাইলগুলি থেকে কিছু এনকোড করা ডেটা যা আমাদের কম্পিউটার পড়ে না কখনও কখনও নোটপ্যাডে দেখা যায়। এইভাবে আমরা পাঠ্য বা সংখ্যার টুকরো পড়ব - এই পদ্ধতিটি BMP ফাইলের ক্ষেত্রেও কাজ করে কিনা তা পরীক্ষা করার মতো।

তালিকা থেকে অ্যাপ্লিকেশন ইতিমধ্যে ইনস্টল করা হলে কি করবেন?

প্রায়শই একটি ইনস্টল করা অ্যাপ্লিকেশন স্বয়ংক্রিয়ভাবে একটি BMP ফাইলের সাথে লিঙ্ক করা উচিত। যদি এটি না ঘটে, তাহলে BMP ফাইলটি নতুন ইনস্টল করা অ্যাপ্লিকেশনের সাথে সফলভাবে ম্যানুয়ালি যুক্ত করা যেতে পারে। শুধু BMP ফাইলে ডান-ক্লিক করুন, এবং তারপর উপলব্ধ তালিকা থেকে "ডিফল্ট প্রোগ্রাম চয়ন করুন" বিকল্পটি নির্বাচন করুন৷ তারপরে আপনাকে "দেখুন" বিকল্পটি নির্বাচন করতে হবে এবং আপনার প্রিয় অ্যাপ্লিকেশনটি সন্ধান করতে হবে। প্রবেশ করা পরিবর্তনগুলি অবশ্যই "ঠিক আছে" বিকল্প ব্যবহার করে অনুমোদিত হতে হবে।

BMP ফাইল খোলে এমন প্রোগ্রাম

উইন্ডোজ
ম্যাক অপারেটিং সিস্টেম

কেন আমি একটি BMP ফাইল খুলতে পারি না?

BMP ফাইলগুলির সাথে সমস্যার অন্যান্য কারণও থাকতে পারে। কখনও কখনও এমনকি আপনার কম্পিউটারে সফ্টওয়্যার ইনস্টল করা যা BMP ফাইলগুলিকে সমর্থন করে তা সমস্যার সমাধান করবে না। BMP ফাইল খুলতে এবং কাজ করতে অক্ষমতার কারণও হতে পারে:

রেজিস্ট্রি এন্ট্রিতে অনুপযুক্ত BMP ফাইল অ্যাসোসিয়েশন
- বিএমপি ফাইলের দুর্নীতি আমরা খুলি
- BMP ফাইল সংক্রমণ (ভাইরাস)
- খুব কম কম্পিউটার সম্পদ
- পুরানো ড্রাইভার
- উইন্ডোজ রেজিস্ট্রি থেকে BMP এক্সটেনশন অপসারণ
- BMP এক্সটেনশন সমর্থন করে এমন একটি প্রোগ্রামের অসম্পূর্ণ ইনস্টলেশন

এই সমস্যাগুলি সমাধান করার ফলে বিএমপি ফাইলগুলি অবাধে খোলা এবং কাজ করা উচিত। যদি আপনার কম্পিউটারে এখনও ফাইলগুলির সাথে সমস্যা থাকে তবে আপনাকে একজন বিশেষজ্ঞের সাহায্য নিতে হবে যিনি সঠিক কারণ নির্ধারণ করবেন।

আমার কম্পিউটার ফাইল এক্সটেনশন দেখায় না, আমি কি করব?

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

ঘোষণা

BMP রাস্টার ইমেজ ফাইল ফরম্যাট

BMP (বিটম্যাপ ফাইল, ডিভাইস-স্বাধীন বিটম্যাপ ফাইল ফর্ম্যাট) হল বিটম্যাপ ফাইল যা ডিসপ্লে ডিভাইস থেকে আলাদাভাবে ডিজিটাল বিটম্যাপ ছবি সংরক্ষণ করতে ব্যবহৃত হয়। এই ফাইলের ধরনটি পূর্বে Microsoft Windows এবং OS/2-এ ব্যবহৃত হয়েছিল। "রাস্টার" শব্দটি একটি বিটম্যাপের প্রোগ্রামারদের ধারণা থেকে এসেছে। বিএমপি ছবিগুলি সাধারণত সংকুচিত বা ক্ষতিহীনভাবে সংকুচিত হয় (উদাহরণস্বরূপ, জিপ বা আরএআর ব্যবহার করা - ফাইলে অপ্রয়োজনীয় ডেটার উপস্থিতির কারণে)। আজ, JPG হল পছন্দের ইমেজ ফরম্যাট - প্রধানত BMP এর বড় ফাইল সাইজের কারণে, যা ফাইল ডাউনলোড, পাঠানো বা আপলোড করার সময় সমস্যা বা বিলম্বের কারণ হতে পারে।

BMP ফাইল সম্পর্কে প্রযুক্তিগত তথ্য

BMP ফাইলগুলি ডেটা সংকোচন, রঙের প্রোফাইল বা আলফা চ্যানেল ছাড়াই বিভিন্ন আকার, রঙ এবং রঙের গভীরতার 2D চিত্র হিসাবে সংরক্ষণ করা হয়। BMP ছবিগুলি ডিভাইস-স্বাধীন বিটম্যাপ (DIB) ফরম্যাটে সংরক্ষিত হয়, যার অর্থ সিস্টেমের স্পেসিফিকেশনের পরিবর্তে ছবিতে রঙ রয়েছে। এটি ব্যাখ্যা করে কেন কিছু BMP চিত্র বিভিন্ন কম্পিউটারে ভিন্ন দেখায়। BMP ছবিগুলি কম্পিউটার এবং টেলিভিশন স্ক্রীন সহ যেকোনো ডিভাইসে দেখা যায়। পেটেন্টের অভাব এই ইমেজ টাইপটিকে বিস্তৃত ডিভাইসের জন্য একটি জনপ্রিয় বিন্যাস করে তুলেছে।

BMP বিন্যাস সম্পর্কে অতিরিক্ত তথ্য

আমরা আশা করি যে আমরা আপনাকে BMP ফাইলের সাথে আপনার সমস্যার সমাধান করতে সাহায্য করেছি। আপনি যদি জানেন না যে আপনি আমাদের তালিকা থেকে একটি অ্যাপ্লিকেশন কোথায় ডাউনলোড করতে পারেন, লিঙ্কটিতে ক্লিক করুন (এটি প্রোগ্রামটির নাম) - আপনি প্রয়োজনীয় অ্যাপ্লিকেশনটির নিরাপদ ইনস্টলেশন সংস্করণটি কোথায় ডাউনলোড করবেন সে সম্পর্কে আরও বিশদ তথ্য পাবেন।

আর কি সমস্যা হতে পারে?

আপনি কেন BMP ফাইল খুলতে পারবেন না তার আরও কারণ থাকতে পারে (শুধুমাত্র একটি সংশ্লিষ্ট অ্যাপ্লিকেশনের অভাব নয়)।
প্রথমত- BMP ফাইলটিকে সমর্থন করার জন্য ইনস্টল করা অ্যাপ্লিকেশনের সাথে ভুলভাবে লিঙ্ক করা হতে পারে (বেমানান)। এই ক্ষেত্রে, আপনি নিজেকে এই সংযোগ পরিবর্তন করতে হবে. এটি করার জন্য, আপনি যে BMP ফাইলটি সম্পাদনা করতে চান তার উপর ডান ক্লিক করুন, বিকল্পটিতে ক্লিক করুন "এর সাথে খুলতে"এবং তারপর তালিকা থেকে আপনি ইনস্টল করা প্রোগ্রাম নির্বাচন করুন। এই কর্মের পরে, BMP ফাইল খোলার সমস্যাগুলি সম্পূর্ণরূপে অদৃশ্য হওয়া উচিত।
দ্বিতীয়ত- আপনি যে ফাইলটি খুলতে চান তা কেবল ক্ষতিগ্রস্ত হতে পারে। এই ক্ষেত্রে, এটির একটি নতুন সংস্করণ খুঁজে বের করা বা একই উত্স থেকে এটি আবার ডাউনলোড করা ভাল হবে (সম্ভবত আগের সেশনে কোনও কারণে BMP ফাইলটির ডাউনলোড শেষ হয়নি এবং এটি সঠিকভাবে খোলা যায়নি) .

তুমি কি সাহায্য করতে চাও?

আপনার কাছে BMP ফাইল এক্সটেনশন সম্পর্কে অতিরিক্ত তথ্য থাকলে, আপনি যদি আমাদের সাইটের ব্যবহারকারীদের সাথে শেয়ার করেন তাহলে আমরা কৃতজ্ঞ থাকব। অবস্থিত ফর্মটি ব্যবহার করুন এবং BMP ফাইল সম্পর্কে আপনার তথ্য আমাদের পাঠান।

প্রায়শই, গ্রাফিক্সের সাথে কাজ করার সময়, অনেক ব্যবহারকারী BMP বিন্যাসে চিত্রগুলির মুখোমুখি হন। আজ, খুব কম লোকই জানে যে এটি কী। এখন আমরা বিএমপি গ্রাফিক ফরম্যাটটি আরও বিশদে দেখব। তদুপরি, আমরা কেবল এর উত্স এবং বিবর্তনের ইতিহাসই খুঁজে বের করব না, তবে এটিকে অন্যান্য জনপ্রিয় ফর্ম্যাটে রূপান্তর করার জন্য কিছু সহজ পদ্ধতিও অফার করব।

BMP বিন্যাস কি?

আসুন খুব বেশি প্রযুক্তিগত বিশদে না যাই। মনে রাখবেন যে BMP হল একক-স্তর রাস্টারের উপর ভিত্তি করে বিটম্যাপের আকারে গ্রাফিক ছবি সংরক্ষণ করার জন্য একটি বিন্যাস।

হ্যা এইটা সত্যি. প্রাথমিকভাবে, BMP চিত্র বিন্যাসটি একচেটিয়াভাবে রাস্টার চিত্রগুলিতে প্রয়োগ করা হয়েছিল এবং সাধারণভাবে সমস্ত গ্রাফিক্সের জন্য একটি সর্বজনীন (স্ট্যান্ডার্ড) এক্সটেনশন ছিল।

উৎপত্তির ইতিহাস

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

সত্য, তারপর থেকে BMP গ্রাফিক্স বিন্যাসে অনেক পরিবর্তন হয়েছে। এটি মূলত অনুমান করা হয়েছিল যে একটি চিত্রের কাঠামোটি ছোট স্কোয়ারের সংমিশ্রণে নির্মিত হয়েছিল, যা আজ পিক্সেল নামে পরিচিত। এটি বিশ্বাস করা হয় যে একটি চিত্রের প্রতিটি পিক্সেলে একটি ভিন্ন রঙের গভীরতা (এই ধরনের গ্রাফিক ইউনিট প্রতি বিটের সংখ্যা) সম্পর্কে ডেটা থাকতে পারে। রঙের বিট গভীরতা নির্দেশ করতে ব্যবহৃত মানগুলি নিম্নরূপ: 1, 2, 4, 8, 16, 24, 32, 48, 64 বিট।

এই ক্ষেত্রে, 8 এর কম মানগুলির জন্য, রঙটি শুধুমাত্র শেডগুলির প্যালেট (টেবিল) সূচক ব্যবহার করে নির্দেশিত হয় এবং সূচকের উপরের মানগুলির জন্য স্ট্যান্ডার্ড RGB মডেল থেকে নেওয়া হয়। পরেরটিতে লাল, সবুজ এবং নীল মিশ্রিত করে প্রাপ্ত রঙের বৈচিত্র রয়েছে।

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

কিভাবে BMP ফাইল ফরম্যাট খুলবেন?

এই ধরনের ছবি খোলার জন্য, যেকোনো উইন্ডোজ অপারেটিং সিস্টেমে এর জন্য বিল্ট-ইন টুল রয়েছে।

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

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

উপরন্তু, গ্রাফিক্স দেখার এবং সম্পাদনা করার জন্য প্রোগ্রামের আবির্ভাবের সাথে, প্রযুক্তিগত সহায়তায় এবং তাদের মধ্যে BMP ফাইল বিন্যাস ঘোষণা করা হয়েছিল। এটি আশ্চর্যজনক নয়, কারণ তিনিই ছিলেন যিনি আজ পরিচিত প্রায় সমস্ত ইমেজ ফাইল এক্সটেনশনের "প্রিয়-দাদা" ছিলেন।

আপনি এই ধরনের গ্রাফিক ডেটা নিয়ে কাজ করার জন্য অনেকগুলি প্রোগ্রাম খুঁজে পেতে পারেন। দেখার সরঞ্জামগুলির মধ্যে, উদাহরণস্বরূপ, আপনি তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলির মধ্যে একটি স্ট্যান্ডার্ড টুল ব্যবহার করতে পারেন, সফ্টওয়্যার প্যাকেজ যেমন ACDSee বা ইরফান ভিউ এবং আরও অনেকগুলি বেশ জনপ্রিয়।

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

BMP ফরম্যাট রূপান্তর করার সহজ উপায়

এখন দেখা যাক কিভাবে সহজ উপায়ে BMP ফরম্যাট পরিবর্তন করা যায়। এটি করার জন্য, আপনি একই গ্রাফিক সম্পাদক ব্যবহার করতে পারেন।

আমরা যদি আদর্শ পেইন্ট অ্যাপ্লিকেশনটিকে উদাহরণ হিসাবে নিই, প্রথমে কাঙ্খিত BMP ফাইলটি খোলা হয়, তারপরে "ফাইল" মেনু থেকে "সেভ অ্যাজ..." কমান্ডটি নির্বাচন করা হয়, যেখানে মূলে, নীচের লাইনে। (ড্রপ-ডাউন মেনু), আপনি সমর্থিত বিন্যাস খুঁজে পেতে পারেন।

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

রূপান্তরকারী ব্যবহার করে

একটি ভিন্ন ধরনের ইমেজকে BMP ফরম্যাটে রূপান্তর করার সবচেয়ে সহজ উপায়গুলির মধ্যে একটি, স্ট্যান্ডার্ড উইন্ডোজ টুলস এবং গ্রাফিক এডিটর ব্যবহার করে উল্লেখ না করা, বিশেষায়িত রূপান্তরকারীগুলি ব্যবহার করা যা স্বয়ংক্রিয়ভাবে কাজ করে।

এখানে সবকিছু সহজ. ব্যবহারকারী প্রোগ্রাম উইন্ডোতে রূপান্তর করার জন্য গ্রাফিক ফাইল যোগ করে, তারপর চূড়ান্ত বিন্যাস (এই ক্ষেত্রে BMP) নির্বাচন করে এবং রূপান্তর প্রক্রিয়া শুরু করতে বোতাম টিপে। নতুন ফর্মের চূড়ান্ত ফাইলগুলি ফোল্ডারে সংরক্ষিত হবে যার অবস্থান ডিফল্টরূপে অ্যাপ্লিকেশনে সেট করা হয়েছে বা ম্যানুয়ালি নির্দিষ্ট করা হয়েছে৷

যাইহোক, একই বিপরীত প্রক্রিয়ায় প্রযোজ্য, যখন আপনাকে BMP বিন্যাসটিকে অন্য কোনোটিতে রূপান্তর করতে হবে।

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

উপসংহার

সংক্ষেপে BMP গ্রাফিক্স ফরম্যাট সম্পর্কে এতটুকুই বলা যেতে পারে। সুস্পষ্ট কারণে, ফাইল কাঠামোর ক্ষেত্রে সমস্যার প্রযুক্তিগত দিক বিবেচনা করা হয়নি। এই ধরনের ডেটা গড় ব্যবহারকারীকে কিছু বলার সম্ভাবনা নেই।

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

ফাইল এক্সটেনশন .bmp
ফাইল বিভাগ
উদাহরণ ফাইল (2.7 MiB)
(487.85 KiB)
সম্পর্কিত প্রোগ্রাম অ্যাডোবি ফটোশপ
এমএস পেইন্ট
মাইক্রোসফট ফটো এডিটর
পেইন্টব্রাশ