之前壓縮圖像我使用此代碼轉換位圖到的Base64:將其發送到服務器
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, **quality**, baos);
byte[] b = baos.toByteArray();
base64code = Base64.encodeToString(b, Base64.DEFAULT);
,並在服務器端接收它,像這樣:
$strImage = preg_replace('!\s*!', '', trim($this->input->post('image')));
$thefile = base64_decode($strImage);
$img = imagecreatefromstring($thefile);
//header('Content-Type: image/jpeg');
header('Content-Type: bitmap; charset=utf-8');
imagesavealpha($img, true);
imagejpeg($img,'./images/temp/testing.jpg',100);
imagedestroy($img);
問題:
實際圖像SI澤其中我是從裝置畫廊拾取要發送到服務器是344 kb的當我設置質量= 0並顯示旋轉器對話框的util的的base64串被髮送到服務器花費5秒發送,並且在服務器側接收到的圖像是344 KB但如果我設置質量= 100花費60-70秒發送,以及i接收在服務器側的圖像是1.7 Mb
提問:
使用質量時,爲什麼我會得到實際大小= 0近大5倍圖像時質量= 100
注:
當我am設置質量= 100並更改
imagejpeg($img,'./images/temp/testing.jpg',100);
到
imagejpeg($img,'./images/temp/testing.jpg',10);
需要60-70秒派,但在服務器端接收的圖像太小67 KB
謝謝
PHP手冊??你的意思是Android?因爲我從來沒有嘗試在PHP中設置0。在Android中,當我使用質量= 0時,我得到了實際的圖像大小,但是當我使用質量= 100時,我獲得了5倍大的圖像 –
好吧,誤解,因爲您提到的PHP函數也需要從0到100的質量參數。 – EJTH
但是你的託管呢?由於它似乎沒有對這個問題做任何真正的分析,所以我認爲實際需要花費時間的是你的應用程序和你的服務器之間的通信,我可能是錯的,如果你不做imagejpeg()調用,你還在必須等待60-70秒才能發送圖像?如果不是它的PHP問題。 – EJTH