天天看點

java 生成漸進式圖檔_java – 如何在Android上建立漸進式JPEG圖像

我需要通過

Android手機(低至10kByte / s)的低帶寬連接配接發送圖像,并希望以逐行(隔行掃描)模式發送它們,以便另一端的使用者在此期間開始看到圖像.冗長的轉移.現在,我正在使用正常照片應用建立圖像:

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

但這會産生非漸進式照片,但我無法發現如何說服它不這樣做.我探索的第二個選項(讀取和重新壓縮拍攝的圖像)被挫敗了,因為Bitmap的compress方法除了格式名稱和壓縮因子之外不允許任何編碼參數,因為我可以确定:

bitmap.compress(Bitmap.CompressFormat.JPEG,80,out);

我首選的解決方案是訓示照片應用程式以漸進模式儲存.

下一個最好的選擇是Java算法,它無損地将存儲的jpeg轉換為漸進式(jpegtran在Linux上執行此操作,但它在C中并且依賴于libjepeg).

接下來最好的方法是為android指定相關的編碼參數,允許我重新壓縮它,或者另外一個Java庫.

進一步的研究表明,算法已經存在(/system/lib/libjpeg.so),其源代碼在〜/ android-sdk-linux / source-tree / external / jpeg中 – 但似乎沒有JNI封裝器容易可用.