導航:首頁 > 文件處理 > 質量壓縮

質量壓縮

發布時間:2022-02-10 04:11:38

android 圖片質量壓縮和尺寸壓縮

不會的。因為質量壓縮並不是能一味的壓縮下去,壓縮到一定程度就不會再壓縮了,它只是通過改變色深等改變圖片大小,不會改變其佔用的內存

Ⅱ 格式工廠里,視頻用最高質量壓縮,會不會有損耗

壓縮這個詞本身就是一種損耗!呵呵~
不過你要是設置合理的話,可以忽略不計的

Ⅲ 怎麼實現高質量的壓縮文件呢

RAR有高質量壓縮功能

Ⅳ android 圖片質量壓縮和尺寸壓縮有什麼區別

這個方法用來將特定格式的壓縮圖片寫入輸出流(OutputStream)中,當然例如輸出流與文件聯系在一起,壓縮後的圖片也就是一個文件。如果壓縮成功則返回true,其中有三個參數:

format是壓縮後的圖片的格式,可取值:Bitmap.CompressFormat .JPEG、~.PNG、~.WEBP。

quality的取值范圍為[0,100],值越小,經過壓縮後圖片失真越嚴重,當然圖片文件也會越小。(PNG格式的圖片會忽略這個值的設定)

stream指定壓縮的圖片輸出的地方,比如某文件。

上述方法還有一個值得注意的地方是:當用BitmapFactory decode文件時可能返回一個跟原圖片不同位深的圖片,或者丟失了每個像素的透明值(alpha),比如說,JPEG格式的圖片僅僅支持不透明的像素。文章android圖片壓縮在文末提到的下面這點可能就是這個原因:

當調用bitmap.compress(CompressFormat.JPEG, 100, fos);保存為圖片時發現圖片背景為黑色,如下圖:

下面是質量壓縮的代碼:

(Bitmapbmp,Filefile){

ByteArrayOutputStreambaos=newByteArrayOutputStream();

intoptions=80;//個人喜歡從80開始,

bmp.compress(Bitmap.CompressFormat.JPEG,options,baos);

while(baos.toByteArray().length/1024>100){

baos.reset();

options-=10;

bmp.compress(Bitmap.CompressFormat.JPEG,options,baos);

}

try{

FileOutputStreamfos=newFileOutputStream(file);

fos.write(baos.toByteArray());

fos.flush();

fos.close();

}catch(Exceptione){

e.printStackTrace();

}

}

這段代碼來自Android圖片壓縮總結,我根據自己的需求改了改,但是大同小異,所以就直接貼了。

隨著代碼中的option逐漸變小,我們可以在logcat中列印baos的大小來查看圖片的大小。我們也可以去掉while的循環條件,一直壓縮下去看效果,最終一張照片可能就由原來的3、4M變成了幾百K甚至幾百B了。我在試的過程中將option設置成100,壓縮後偶爾會出現一張3、4M的圖片經過壓縮後竟變成了6、7M,這里還是有點困惑,不知道為什麼。

隨後,我想把這個壓縮後的圖片(1、200KB)填充到ImageView中時卻失敗了,logcat中提示圖片過大!這就是文章開頭提到的問題,雖然我們通過質量壓縮使File形式的圖片文件縮小了,但是並沒有改變圖片的寬高,原先是1080*1920解析度的圖片經壓縮後還是1080*1920,而File格式轉換成Bitmap格式進入到內存中時,內存是根據圖片的像素數量來給圖片分配內存大小的,還是有好幾M,因此填充ImageView失敗。

順便提一下,可以用bitmap.getByteCount()獲取存儲bitmap像素的內存大小,但是KITKAT(Android 4.4版本)以後用getAllocateByteCount()獲取。一般情況下,後者返回值比前者大,比如,當bitmap被重用去decode另外更小的bitmaps時,或者被人為地配置一下屬性值,比如setWidth()、setHeight()、reconfigure()時,如果bitmap不做以上操作,二者的返回值應該是一樣的。(譯文,不太懂)

二、尺寸壓縮

特點: 通過設置采樣率, 減少圖片的像素, 達到對內存中的Bitmap進行壓縮



我們主要通過BitmapFactory中的decodeFile方法對圖片進行尺寸壓縮:

publicstaticBitmapdecodeFile(StringpathName,BitmapFactory.Optionsopts)

public static Bitmap decodeFile (String pathName, BitmapFactory.Options opts)

其中有兩個參數:

pathName是圖片文件的路徑。

opts 就是所謂的采樣率,它里邊有很多屬性可以設置,我們通過設置屬性來達到根據自己的需要,壓縮出指定的圖片。其中比較常用的屬性有:

booleaninJustDecodeBounds—— 如果設置為true,則只讀取bitmap的寬高,而忽略內容。

intinSampleSize—— 如果>1,調用decodeFile方法後,就會得到一個更小的bitmap對象(已壓縮)。比如設置為2,那麼新Bitmap的寬高都會是原Bitmap寬高的1/2,總體大小自然就是原來的1/4了,以此類推。

booleaninPurgeable—— 如果設置為true,壓縮後的圖片像素占的內存將會在系統清理內存的時候被回收掉,當像素的信息再次被用到時將會自動重新decode該像素(比如getPixels()時)。(慎用!重復decode可以會造成UI的卡頓,API level 21 已棄用)

booleaninInputShareable—— 與inPurgeable配合使用,如果inPurgeable設置成false,自動忽略此值,如果inPurgeable為true,此值決定是否該bitmap能分享引用給輸入數據(inputstream,array等),或者必須進行深拷貝。API level 21 已棄用。(這是譯文,不太理解!!!)

下面是一段實現的代碼

privateBitmapsizeCompres(Stringpath,intrqsW,intrqsH){

//用option設置返回的bitmap對象的一些屬性參數

finalBitmapFactory.Optionsoptions=newBitmapFactory.Options();

options.inJustDecodeBounds=true;//設置僅讀取Bitmap的寬高而不讀取內容

BitmapFactory.decodeFile(path,options);//獲取到圖片的寬高,放在option里邊

finalintheight=options.outHeight;//圖片的高度放在option里的outHeight屬性中

finalintwidth=options.outWidth;

intinSampleSize=1;

if(rqsW==0||rqsH==0){

options.inSampleSize=1;

}elseif(height>rqsH||width>rqsW){

finalintheightRatio=Math.round((float)height/(float)rqsH);

finalintwidthRatio=Math.round((float)width/(float)rqsW);

inSampleSize=heightRatio<widthRatio?heightRatio:widthRatio;

options.inSampleSize=inSampleSize;

}

returnBitmapFactory.decodeFile(path,options);//主要通過option里的inSampleSize對原圖片進行按比例壓縮

}

private Bitmap sizeCompres(String path, int rqsW, int rqsH) {

// 用option設置返回的bitmap對象的一些屬性參數

final BitmapFactory.Options options = new BitmapFactory.Options();

options.inJustDecodeBounds = true;// 設置僅讀取Bitmap的寬高而不讀取內容

BitmapFactory.decodeFile(path, options);// 獲取到圖片的寬高,放在option里邊

final int height = options.outHeight;//圖片的高度放在option里的outHeight屬性中

final int width = options.outWidth;

int inSampleSize = 1;

if (rqsW == 0 || rqsH == 0) {

options.inSampleSize = 1;

} else if (height > rqsH || width > rqsW) {

final int heightRatio = Math.round((float) height / (float) rqsH);

final int widthRatio = Math.round((float) width / (float) rqsW);

inSampleSize = heightRatio < widthRatio ? heightRatio : widthRatio;

options.inSampleSize = inSampleSize;

}

return BitmapFactory.decodeFile(path, options);// 主要通過option里的inSampleSize對原圖片進行按比例壓縮

}

上面就是簡單的質量壓縮與尺寸壓縮。

Ⅳ 如何迅速高質量壓縮文件

一般的方法壓縮不到吧

Ⅵ 怎麼壓縮文件,圖片質量不變

1、把圖片都復制到一個文件夾中,命名為:XX圖片;

2、右鍵點擊XX圖片的文件夾,在右鍵菜單中左鍵點擊:添加到壓縮文件(A);

壓縮文件便製作好了。

PS:

1、用RAR該怎麼操作,上述方法就是用RAR製作壓縮文件 ;

2、壓縮方式是選 儲存,標准,還是最好?一般選用:標准;

3、要壓成多個壓縮文件該怎麼弄?如果照片多了,我們把照片分別復制粘貼到幾個文件夾,再分別加以壓縮。

Ⅶ 為什麼PPT可以往高質量壓縮,往低壓縮質量壓縮不了

因為你的圖片本身的質量低於220ppi所以沒法壓縮 壓縮圖片只能往低壓縮質量,沒法往高升圖片質量的。 我的理解是這樣的。

Ⅷ 壓縮文件後質量一般會不會有變化

壓縮分為有損和無損壓縮兩種,有損壓縮會影響質量,無算壓縮可完全恢復,不影響質量。

壓縮可分為有損壓縮和無損壓縮。如果個人數據的丟失沒有太大的影響,那麼忽略它們是一個好主意。這就是所謂的有損壓縮。有損壓縮廣泛應用於動畫、聲音和圖像文件。

但通常情況下,壓縮數據必須是准確的,人們已經設計了無損壓縮格式,如通用zip、rar等等。所謂無損壓縮格式,就是利用數據的統計冗餘進行壓縮,能夠完全恢復原始數據而不引起任何失真。

(8)質量壓縮擴展閱讀:

常見的壓縮軟體:

WinMount,WinRAR,WinZip,7-zip,coolrar

常見的壓縮格式包括:

Rar,zip,tar,cab,uue,jar,iso,z,7-zip,ace,LZH,arj,gzip,bz2等

壓縮軟體壓縮後的文件被稱為壓縮文件,壓縮的原理是壓縮文件的二進制代碼,鄰0,1減少代碼,例如:000000年,它可以轉化為6060寫作方法,減少文件的空間。

Ⅸ 圖像的壓縮品質指什麼

壓縮品質就是壓縮以後圖像的品質,呵呵,這相當於沒說。通俗地講,就是用圖像處理軟體保存圖像時,為了節省硬碟空間,一般是要對原始圖像通過一定的演算法進行壓縮的,而壓縮品質實質上就是壓縮比率的大小,壓縮的比率越高,生成的圖像所佔硬碟空間就越少,便是圖片質量也就越差;相反,壓縮比率越低,圖像的品質越高,但是相應地佔用硬碟空間也就越大。採用什麼樣的壓縮品質,還要具休地看是什麼用途,如果是做網頁用,圖像不能太大,否則會影響網頁的打開速度,所以採用較低的壓縮品質就行了,如果是要沖印,則必須保證圖片的質量,這時就要採用很高的壓縮品質。而大部分時間我們既不做網網頁也不沖印,而是存在電腦上,這時採用中等的壓縮品質就行了。
像素圖的運算都是採用非常復雜的公式,不同軟體採用的公式也是不同的。這些雖然不是很機密的技術,但是很少有軟體公司把這些公式公布出來。目前,沒有看到過Adobe公司公布圖像的壓縮演算法。

Ⅹ 探討一下壓縮方法 !但視頻質量不變!

格式工廠做不了無損壓縮的 做無損壓縮網上用的最多的可能就是TMPGEnc 4.0 XPress了 可以用來做藍光原盤的無損壓縮了
另外 把350kbps碼率的視頻做H264編碼的壓縮 生成的視頻絕對好不了哪兒去 因為原文件質量太差了 48k的音頻碼率也夠糟的了 我們聽的普通的MP3一般都還是128k的呢 普通的DVD影片碼率也在500-600k的碼率 720p的高清影片都到了2-4MB/s的碼率
原文件質量的好壞很關鍵 另外 只要做的不是無損壓縮 那麼質量都會下降的 只是人眼能否分辨而已罷了 但用軟體分析或是用高清液晶看的話 就暴露無疑了

閱讀全文

與質量壓縮相關的資料

熱點內容
python進階客戶流失 瀏覽:276
華為榮耀10伺服器地址 瀏覽:996
javastring相等判斷 瀏覽:409
程序員考研究生學校 瀏覽:933
java卡頓 瀏覽:500
編程軟體怎麼運行zip文件 瀏覽:505
單片機怎麼做組態 瀏覽:899
android參考文獻外文 瀏覽:684
銅電極電流效率的演算法 瀏覽:142
簡訊內存已滿怎麼處理安卓 瀏覽:312
ogg命令 瀏覽:784
南昌程序員最新消息 瀏覽:151
藍牙編程入門書籍 瀏覽:763
單片機秒錶實驗 瀏覽:411
小米3文件夾設置 瀏覽:565
手動添加dns伺服器加什麼數字 瀏覽:563
單片機中三位數碼管原件 瀏覽:140
pdf可以刪除其中一頁 瀏覽:217
清dns緩存的命令 瀏覽:104
免費pdf在線轉換 瀏覽:770