亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在運行時調整圖像大小時出現質量問題

在運行時調整圖像大小時出現質量問題

UYOU 2019-10-25 10:57:21
我的磁盤上有一個映像文件,我正在調整文件的大小并將其作為新的映像文件保存回磁盤。出于這個問題,我并不是為了將它們顯示在屏幕上而將它們帶入內存中,只是為了調整它們的大小并重新保存它們。這一切都很好。但是,縮放后的圖像上會出現偽像,如下所示:android:在運行時調整圖像大小的質量由于存在這種失真,因此可以保存它們,因為我可以將它們從磁盤上拉出并在計算機上查看它們,但它們仍然存在相同的問題。在將圖像加載到Bitmap對象以將位圖解碼到內存中時,我正在使用類似于此內存不足問題的代碼:BitmapFactory.Options options = new BitmapFactory.Options();options.inJustDecodeBounds = true;BitmapFactory.decodeFile(imageFilePathString, options);int srcWidth = options.outWidth;int srcHeight = options.outHeight;int scale = 1;while(srcWidth / 2 > desiredWidth){   srcWidth /= 2;   srcHeight /= 2;   scale *= 2;}options.inJustDecodeBounds = false;options.inDither = false;options.inSampleSize = scale;Bitmap sampledSrcBitmap = BitmapFactory.decodeFile(imageFilePathString, options);然后我用以下方法進行實際縮放:Bitmap scaledBitmap = Bitmap.createScaledBitmap(sampledSrcBitmap, desiredWidth, desiredHeight, false);最后,使用以下命令將新調整大小的映像保存到磁盤:FileOutputStream out = new FileOutputStream(newFilePathString);scaledBitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);然后,正如我提到的,如果我從磁盤上拉出文件并進行查看,它上面存在鏈接的質量問題,看起來很糟糕。如果我跳過createScaledBitmap,而只是將sampledSrcBitmap直接保存回磁盤,就沒有問題,似乎只有在大小更改時才會發生。正如您在代碼中所看到的,我已經嘗試過將inDither設置為false,如此處http://groups.google.com/group/android-developers/browse_thread/thread/8b1abdbe881f9f71所述,并且如上文第一篇鏈接文章所述。那什么都沒改變。另外,在我鏈接的第一篇文章中,羅曼·蓋伊說:而不是在繪制時調整大?。ㄟ@將是非常昂貴的),請嘗試在屏幕外的位圖上調整大小,并確保位圖為32位(ARGB888)。但是,我不知道如何在整個過程中確保位圖保持為32位。我還閱讀了其他幾篇文章,例如http://android.nakatome.net/2010/04/bitmap-basics.html,但它們似乎都在解決繪圖和顯示位圖的問題,我只想調整它的大小并將其保存回磁盤,而不會出現此質量問題。非常感謝
查看完整描述

3 回答

  • 3 回答
  • 0 關注
  • 684 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號