gpt4 book ai didi

android - 如何设置限制从Android上传图片到数据库MySQL

转载 作者:行者123 更新时间:2023-11-29 19:42:29 25 4
gpt4 key购买 nike

先生,当我想将 LIMIT 设置为 UPLOAD IMAGE(以 KB(千字节)为单位,例如 200KB)时,我遇到了问题。

private void uploadImage(){
if (bitmap.getByteCount() > 7 * 1024 * 1024){
H.T(AddFotoActivity.this,"Image Maks 200KB");
}
}

我尝试了该代码,但是我只能上传 110KB,当我尝试上传 116KB 时,它无法上传。老师,如何上传200KB的文件?我不知道如何计算7*1024*1024

最佳答案

试试这个代码:

/**
* reduces the size of the image
* @param image
* @param maxSize
* @return
*/
public Bitmap getResizedBitmap(Bitmap image, int maxSize) {
int width = image.getWidth();
int height = image.getHeight();

float bitmapRatio = (float)width / (float) height;
if (bitmapRatio > 0) {
width = maxSize;
height = (int) (width / bitmapRatio);
} else {
height = maxSize;
width = (int) (height * bitmapRatio);
}
return Bitmap.createScaledBitmap(image, width, height, true);
}

像这样使用它:

Bitmap scaledImage = getResizedBitmap(photo, 300); //here 300 is maxsize

来自Wikipedia

对于最高质量的图像 (Q=100),每个颜色像素大约需要 8.25 位

因此,对于 300x300 图像上的 Q=100,这将导致 (300 * 300) px * 8.25 位/px = 741,500 位 = ~ 91 kB这肯定小于 200KB

您也可以尝试其他尺寸..

您还可以尝试使用位图制作图像并比较图像的实际大小..

这是代码:

 //create a file to write bitmap data
File f = new File(context.getCacheDir(), filename);
f.createNewFile();

//Convert bitmap to byte array
Bitmap bitmap = your bitmap;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.PNG, 0 /*ignored for PNG*/, bos);
byte[] bitmapdata = bos.toByteArray();

//write the bytes in file
FileOutputStream fos = new FileOutputStream(f);
fos.write(bitmapdata);
fos.flush();
fos.close();

关于android - 如何设置限制从Android上传图片到数据库MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41266828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com