<分区>
<分区>
我有以下上传代码,在用户从他们的相册中选择图片后调用:
public void Picked(object sender, UIImagePickerMediaPickedEventArgs e)
{
picker.DismissViewController (false, null);
image.Image = e.Info [UIImagePickerController.OriginalImage] as UIImage;
//get a stream of the image data
imageData = image.Image.AsPNG().AsStream();
filename = filenameBox.Text;
spinner.StartAnimating ();
Thread t = new Thread (UploadImage);
t.Start ();
}
public void UploadImage()
{
//upload to s3
Amazon.S3.AmazonS3Client s3 = new AmazonS3Client ("My access key", "my secret key");
// Create a PutObject request
PutObjectRequest request = new PutObjectRequest {
BucketName = "my bucket name",
Key = filename
};
//put the image data into the request
request.InputStream = imageData;
// Put image
PutObjectResponse response = s3.PutObject(request);
InvokeOnMainThread (StopSpinning);
}
一切正常,但 iPhone 相机图像尺寸较大且上传速度非常慢。我正在寻找一种在将图像上传到 s3
之前轻松压缩图像的方法。
我读过其他讨论 scale
函数的问题?这是诀窍吗?如何使用它?
我不想裁剪图像,只是压缩和缩小尺寸。如何实现?
我正在寻找一个 monotouch
的例子,而不是 objective c
最佳答案
UIImage 的 Scale 方法效果很好,但它也会减小图像的大小(以像素为单位)。根据您的要求,它可能适合您,也可能不适合您。相反,您可以尝试使用 UIImage.AsJPEG(float quality) 方法,其中质量介于 0 和 1 之间。这将降低图像质量而不改变像素大小。
关于c# - 上传前压缩 iPhone 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16639650/