كتابة ملفات BMP باستخدام databuffer.type_float أو databuffer.type_double في java

StackOverflow https://stackoverflow.com/questions/2530831

  •  22-09-2019
  •  | 
  •  

سؤال

واجهت مشكلة في العمل مع فصول الصور في جافا.

أقوم بإنشاء صورة مخزنة مع databuffer.type_double. كل هذا يعمل بشكل جيد في الذاكرة (على ما أظن). لكن المشكلة تبدأ عندما أحاول كتابتها باستخدام imageio.write.

في البداية ، لم أحصل على استثناء على الإطلاق ، وبدلاً من ذلك ، كنت أحصل على ملف إخراج فارغ لمشاكلي ..

بعد قليل من التورط في الكود ، اكتشفت أن كاتب BMP لا يدعم نوع الملفات من النوع.

From: BMPImageWriterSpi.canEncodeImage:
        if (dataType < DataBuffer.TYPE_BYTE || dataType > DataBuffer.TYPE_INT)
        return false;

لذا فإن سؤالي هو ، هل لدى أي شخص طريقة لكتابة هذا النوع من الصور على القرص؟ أي وثائق أو تعليمي ، أو رابط سيكون مفيدًا.

شكرا ، باسل دسوزا

هل كانت مفيدة؟

المحلول

نظرًا لأن تنسيق BMP لا يستخدم أي تمثيلات نقطة عائمة ، فليس من المنطقي استخدام بيانات نقطة عائمة لتمثيل صورة ستكتبها كصورة BMP. هل تحتاج حقا للقيام بذلك؟ لماذا لا ints؟

ال جافادوك ل DataBuffer.TYPE_DOUBLE يشير إلى أنه غير مخصص حاليًا للاستخدام.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top