我從一個服務器上獲得一個圖像,大小約爲15MB,但我想保持長寬比但壓縮文件的大小,因爲我正在加載大約相同大小的多個文件?這些圖像被下載爲BitMaps和使用SetImageBitmap來顯示圖像如何壓縮圖像但不調整其大小使用Xamarin Android?
0
A
回答
-1
您可以使用其他文件格式(例如jpeg)壓縮圖像。 或者您可以在保持縱橫比的同時調整圖像大小。
1
你可以通過將圖像轉換爲JPEG或PNG來做到這一點。這是快速和骯髒的實施位圖PNG轉換例程的:
它的前提上的文件擴展名,但可以很容易修改。
這裏是我用來驗證壓縮的全樣本:
public class MainActivity : Activity
{
public const string BITMAP_URL = @"http://www.openjpeg.org/samples/Bretagne2.bmp";
public string ResizeImage(string sourceFilePath)
{
Android.Graphics.Bitmap bmp = Android.Graphics.BitmapFactory.DecodeFile (sourceFilePath);
string newPath = sourceFilePath.Replace(".bmp", ".png");
using (var fs = new FileStream (newPath, FileMode.OpenOrCreate)) {
bmp.Compress (Android.Graphics.Bitmap.CompressFormat.Png, 100, fs);
}
return newPath;
}
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
SetContentView (Resource.Layout.Main);
Button button = FindViewById<Button> (Resource.Id.myButton);
button.Click += delegate {
System.Threading.Tasks.Task.Run(() => {
RunOnUiThread(() => Toast.MakeText(this, "Downloading file", ToastLength.Long).Show());
string downloadFile = DownloadSourceImage(BITMAP_URL);
RunOnUiThread(() => Toast.MakeText(this, "Rescaling image: " + downloadFile, ToastLength.Long).Show());
string convertedFile = ResizeImage(downloadFile);
var bmpFileSize = (new FileInfo(downloadFile)).Length;
var pngFileSize = (new FileInfo(convertedFile)).Length;
RunOnUiThread(() => Toast.MakeText(this, "BMP is " + bmpFileSize + "B. PNG is " + pngFileSize + "B.", ToastLength.Long).Show());
});
};
}
public string DownloadSourceImage(string url)
{
System.Net.WebClient client = new System.Net.WebClient();
string fileName = url.Split ('/').LastOrDefault();
string downloadedFilePath = Path.Combine(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath, fileName);
if (File.Exists (downloadedFilePath) == false) {
client.DownloadFile (url, downloadedFilePath);
}
return downloadedFilePath;
}
}
相關問題
- 1. 如何壓縮圖像但不調整大小使用Xamarin IOS?
- 2. 如何在Android中調整圖像大小而不縮小?
- 3. 調整jpeg圖像大小是否會影響其壓縮?
- 4. 圖像縮放調整大小IMAGEVIEW android
- 5. 使用壓縮縮小圖像大小不改變尺寸
- 6. 如何壓縮圖像大小?
- 7. Android如何調整其圖像調整大小後的佈局
- 8. Android - 如何壓縮或縮小圖像?
- 9. 圖像大小調整 - 文件大小不像Python縮小
- 10. 爲iOS壓縮和調整大圖像
- 11. Wordpress調整圖像大小時如何縮小文件大小?
- 12. 如何縮小圖像文件的大小而不壓縮它?
- 13. Android圖像調整大小
- 14. 如何在調整圖像大小時調整圖像大小使用drawImage
- 15. 在Java中調整圖像大小以縮小圖像大小
- 16. Php調整大小與圖像GD不顯示圖像,但調整大小
- 17. 如何在不調整圖像大小的情況下壓縮PDF?
- 18. 如何使用CFImage調整大小並實際縮小圖像文件大小?
- 19. 圖像縮略圖和調整大小
- 20. 調整圖像大小和縮略圖
- 21. C#簡單圖像調整大小:文件大小不縮小
- 22. Android - 壓縮和解壓縮圖像的大小相同
- 23. PHP - 調整大小並壓縮來自數據URI的圖像
- 24. base64編碼的圖像壓縮/調整大小
- 25. 在Java中的圖像壓縮和調整大小
- 26. Silverlight 4.0 - 圖像調整大小和壓縮速度
- 27. 用Java調整圖像大小。如何調整大小
- 28. 如何調整圖像大小,使其像原來的光滑
- 29. 如何使圖像調整大小
- 30. 照片大小調整和壓縮
爲了澄清,你想在磁盤上壓縮文件的大小或減少一般圖像的尺寸(寬度和高度)? – matthewrdev
我只想壓縮文件大小,而不是更改尺寸。 – Ash