先生,我有问题,我希望将ALTER TABLE `mobile_update'
CHANGE COLUMN `initial_entry` `initial_entry` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP;
设置为LIMIT
,以KB(千字节)为单位,例如200KB。
UPLOAD IMAGE
我尝试了这段代码但是,我只能上传110KB,当我尝试上传116KB时,它无法上传。 如何上传200KB文件先生?我不知道如何计算7 * 1024 * 1024
答案 0 :(得分:0)
试试这段代码:
/**
* 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
对于最高质量的图像(Q = 100),每个颜色像素需要大约8.25位
因此,对于Q=100
图像上的300x300
,这将导致(300 * 300)px * 8.25位/ px = 741,500位= ~91 kB,这肯定小于200 KB
你也可以尝试其他方面..
您还可以尝试使用位图制作图像并比较图像的实际尺寸。
这是代码:
//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();