Я пытаюсь посмотреть другие примеры сжатия изображений. Тем не менее, я до сих пор не знаю, где и как включить коды для сжатия. Может ли кто-нибудь помочь мне в этом?Как сжать изображение при загрузке на сервер?
public void uploadMultipart() {
//getting name for the image
String name = editText.getText().toString().trim();
//getting the actual path of the image
String path = getPath(filePath);
//Uploading code
try {
String uploadId = UUID.randomUUID().toString();
//Creating a multi part request
new MultipartUploadRequest(this, uploadId, Constants.UPLOAD_URL)
.addFileToUpload(path, "image") //Adding file
.addParameter("name", name) //Adding text parameter to the request
.setNotificationConfig(new UploadNotificationConfig())
.setMaxRetries(2)
.startUpload(); //Starting the upload
} catch (Exception exc) {
Toast.makeText(this, exc.getMessage(), Toast.LENGTH_SHORT).show();
}
}
//method to get the file path from uri
public String getPath(Uri uri) {
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
cursor.moveToFirst();
String document_id = cursor.getString(0);
document_id = document_id.substring(document_id.lastIndexOf(":") + 1);
cursor.close();
cursor = getContentResolver().query(
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
null, MediaStore.Images.Media._ID + " = ? ", new String[]{document_id}, null);
cursor.moveToFirst();
String path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
// Bitmap bmp = BitmapFactory.decodeFile(path);
// ByteArrayOutputStream baos = new ByteArrayOutputStream();
// bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
cursor.close();
return path;
}
Какой тип файла это? Если его jpg или png, то он уже сжат. Единственным файлом, который не будет, является .bmp, что не слишком вероятно. –
@GabeSechan Это jpg или png, но я видел много примеров, хотя, когда я искал, как сжимать изображения. – arsenallavigne
Обе из них уже сжаты. Если вы повторно сжимаете jpg, он потеряет качество, потому что jpeg - это сжатие с потерями. Если вы перекомпилируете png, он даст вам тот же самый файл (если вы не сжимаете его до jpg, и в этом случае вы потеряете качество). Если вы в порядке с потерей качества, вы можете немного сжать pngs, но jpegs уже сделаны. И вообще вы не хотите терять качество. –