Сохранение растрового изображения в файл для загрузки в OCR - PullRequest
0 голосов
/ 16 апреля 2019

Я обрезаю изображение, используя координаты, и мне удается получить растровое изображение.Я хотел бы сохранить растровое изображение в файле, чтобы я мог загрузить путь к OCR от Microsoft.

Я попытался вывести поток в файл в другой функции, а затем вернуть файл.Но файл вернул бы ноль.

Bitmap bmpCroppedID = Bitmap.createBitmap(correctedBmp, idX, idY, idCroppedWidth, idCroppedHeight);

idImageView = findViewById(R.id.idImageView);
idImageView.setImageBitmap(bmpCroppedID);
try {
    filepathID= getImageFile(bmpCroppedID);
    text1.setText(file.getAbsolutePath());
} catch (IOException e) {
    e.printStackTrace();
}

Bitmap bmpCroppedVoltage = Bitmap.createBitmap(correctedBmp, voltageX, voltageY, voltageCroppedWidth, voltageCroppedHeight);

voltageImageView = findViewById(R.id.voltageImageView);
voltageImageView.setImageBitmap(bmpCroppedVoltage);
try {
    filepathVoltage= getImageFile(bmpCroppedVoltage);
    text2.setText(file2.getAbsolutePath());
} catch (IOException e) {
    e.printStackTrace();
}
private String getImageFile(Bitmap bitmap) throws IOException {

String timeStamp= new  SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());

String imageName= "jpg "+timeStamp+"_";

File storageDir= getExternalFilesDir(Environment.DIRECTORY_PICTURES);

File imageFile= File.createTempFile(imageName,".jpg",storageDir);

FileOutputStream fileOutputStream = new FileOutputStream(imageFile);

bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fileOutputStream);

fileOutputStream.flush();
fileOutputStream.close();

currentImagePath= imageFile.getAbsolutePath();
return currentImagePath;
}

Изображение обрезается идеально, и я ожидаю получить путь к сохраненному и сжатому образу, чтобы я мог отправить его в API Microsoft.

1 Ответ

0 голосов
/ 16 апреля 2019

Вам нужно будет добавить это разрешение в ваш файл AndroidManifest.xml:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Если это так, проверьте вашу инструкцию:

File storageDir= getExternalFilesDir(Environment.DIRECTORY_PICTURES);

Я считаю, что это должно быть:

File storageDir= new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES));

getExternalFilesDir возвращает строку пути, а не файл.

...