List of usage examples for android.media ExifInterface ORIENTATION_ROTATE_180
int ORIENTATION_ROTATE_180
To view the source code for android.media ExifInterface ORIENTATION_ROTATE_180.
Click Source Link
From source file:com.soma.daemin.fragment.NewPicUploadTaskFragment.java
private static int exifOrientationToDegrees(int exifOrientation) { if (exifOrientation == ExifInterface.ORIENTATION_ROTATE_90) { return 90; } else if (exifOrientation == ExifInterface.ORIENTATION_ROTATE_180) { return 180; } else if (exifOrientation == ExifInterface.ORIENTATION_ROTATE_270) { return 270; }/* w w w .j a v a2 s .c o m*/ return 0; }
From source file:com.almalence.opencam.SavingService.java
public void saveResultPicture(long sessionID) { initSavingPrefs();// ww w . j a v a2 s . c o m SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); // save fused result try { File saveDir = getSaveDir(false); Calendar d = Calendar.getInstance(); int imagesAmount = Integer .parseInt(getFromSharedMem("amountofresultframes" + Long.toString(sessionID))); if (imagesAmount == 0) imagesAmount = 1; int imageIndex = 0; String sImageIndex = getFromSharedMem("resultframeindex" + Long.toString(sessionID)); if (sImageIndex != null) imageIndex = Integer.parseInt(getFromSharedMem("resultframeindex" + Long.toString(sessionID))); if (imageIndex != 0) imagesAmount = 1; ContentValues values = null; boolean hasDNGResult = false; for (int i = 1; i <= imagesAmount; i++) { hasDNGResult = false; String format = getFromSharedMem("resultframeformat" + i + Long.toString(sessionID)); if (format != null && format.equalsIgnoreCase("dng")) hasDNGResult = true; String idx = ""; if (imagesAmount != 1) idx += "_" + ((format != null && !format.equalsIgnoreCase("dng") && hasDNGResult) ? i - imagesAmount / 2 : i); String modeName = getFromSharedMem("modeSaveName" + Long.toString(sessionID)); // define file name format. from settings! String fileFormat = getExportFileName(modeName); fileFormat += idx + ((format != null && format.equalsIgnoreCase("dng")) ? ".dng" : ".jpg"); File file; if (ApplicationScreen.getForceFilename() == null) { file = new File(saveDir, fileFormat); } else { file = ApplicationScreen.getForceFilename(); } OutputStream os = null; if (ApplicationScreen.getForceFilename() != null) { os = getApplicationContext().getContentResolver() .openOutputStream(ApplicationScreen.getForceFilenameURI()); } else { try { os = new FileOutputStream(file); } catch (Exception e) { // save always if not working saving to sdcard e.printStackTrace(); saveDir = getSaveDir(true); if (ApplicationScreen.getForceFilename() == null) { file = new File(saveDir, fileFormat); } else { file = ApplicationScreen.getForceFilename(); } os = new FileOutputStream(file); } } // Take only one result frame from several results // Used for PreShot plugin that may decide which result to save if (imagesAmount == 1 && imageIndex != 0) i = imageIndex; String resultOrientation = getFromSharedMem( "resultframeorientation" + i + Long.toString(sessionID)); int orientation = 0; if (resultOrientation != null) orientation = Integer.parseInt(resultOrientation); String resultMirrored = getFromSharedMem("resultframemirrored" + i + Long.toString(sessionID)); Boolean cameraMirrored = false; if (resultMirrored != null) cameraMirrored = Boolean.parseBoolean(resultMirrored); int x = Integer.parseInt(getFromSharedMem("saveImageHeight" + Long.toString(sessionID))); int y = Integer.parseInt(getFromSharedMem("saveImageWidth" + Long.toString(sessionID))); if (orientation == 0 || orientation == 180 || (format != null && format.equalsIgnoreCase("dng"))) { x = Integer.valueOf(getFromSharedMem("saveImageWidth" + Long.toString(sessionID))); y = Integer.valueOf(getFromSharedMem("saveImageHeight" + Long.toString(sessionID))); } Boolean writeOrientationTag = true; String writeOrientTag = getFromSharedMem("writeorientationtag" + Long.toString(sessionID)); if (writeOrientTag != null) writeOrientationTag = Boolean.parseBoolean(writeOrientTag); if (format != null && format.equalsIgnoreCase("jpeg")) {// if result in jpeg format if (os != null) { byte[] frame = SwapHeap.SwapFromHeap( Integer.parseInt(getFromSharedMem("resultframe" + i + Long.toString(sessionID))), Integer.parseInt( getFromSharedMem("resultframelen" + i + Long.toString(sessionID)))); os.write(frame); try { os.close(); } catch (Exception e) { e.printStackTrace(); } } } else if (format != null && format.equalsIgnoreCase("dng")) { saveDNGPicture(i, sessionID, os, x, y, orientation, cameraMirrored); } else {// if result in nv21 format int yuv = Integer.parseInt(getFromSharedMem("resultframe" + i + Long.toString(sessionID))); com.almalence.YuvImage out = new com.almalence.YuvImage(yuv, ImageFormat.NV21, x, y, null); Rect r; String res = getFromSharedMem("resultfromshared" + Long.toString(sessionID)); if ((null == res) || "".equals(res) || "true".equals(res)) { // to avoid problems with SKIA int cropHeight = out.getHeight() - out.getHeight() % 16; r = new Rect(0, 0, out.getWidth(), cropHeight); } else { if (null == getFromSharedMem("resultcrop0" + Long.toString(sessionID))) { // to avoid problems with SKIA int cropHeight = out.getHeight() - out.getHeight() % 16; r = new Rect(0, 0, out.getWidth(), cropHeight); } else { int crop0 = Integer .parseInt(getFromSharedMem("resultcrop0" + Long.toString(sessionID))); int crop1 = Integer .parseInt(getFromSharedMem("resultcrop1" + Long.toString(sessionID))); int crop2 = Integer .parseInt(getFromSharedMem("resultcrop2" + Long.toString(sessionID))); int crop3 = Integer .parseInt(getFromSharedMem("resultcrop3" + Long.toString(sessionID))); r = new Rect(crop0, crop1, crop0 + crop2, crop1 + crop3); } } jpegQuality = Integer.parseInt(prefs.getString(ApplicationScreen.sJPEGQualityPref, "95")); if (!out.compressToJpeg(r, jpegQuality, os)) { if (ApplicationScreen.instance != null && ApplicationScreen.getMessageHandler() != null) { ApplicationScreen.getMessageHandler() .sendEmptyMessage(ApplicationInterface.MSG_EXPORT_FINISHED_IOEXCEPTION); } return; } SwapHeap.FreeFromHeap(yuv); } String orientation_tag = String.valueOf(0); // int sensorOrientation = CameraController.getSensorOrientation(); // int displayOrientation = CameraController.getDisplayOrientation(); // sensorOrientation = (360 + sensorOrientation + (cameraMirrored ? -displayOrientation // : displayOrientation)) % 360; // if (CameraController.isFlippedSensorDevice() && cameraMirrored) // orientation = (orientation + 180) % 360; switch (orientation) { default: case 0: orientation_tag = String.valueOf(0); break; case 90: orientation_tag = cameraMirrored ? String.valueOf(270) : String.valueOf(90); break; case 180: orientation_tag = String.valueOf(180); break; case 270: orientation_tag = cameraMirrored ? String.valueOf(90) : String.valueOf(270); break; } int exif_orientation = ExifInterface.ORIENTATION_NORMAL; if (writeOrientationTag) { switch ((orientation + 360) % 360) { default: case 0: exif_orientation = ExifInterface.ORIENTATION_NORMAL; break; case 90: exif_orientation = cameraMirrored ? ExifInterface.ORIENTATION_ROTATE_270 : ExifInterface.ORIENTATION_ROTATE_90; break; case 180: exif_orientation = ExifInterface.ORIENTATION_ROTATE_180; break; case 270: exif_orientation = cameraMirrored ? ExifInterface.ORIENTATION_ROTATE_90 : ExifInterface.ORIENTATION_ROTATE_270; break; } } else { switch ((additionalRotationValue + 360) % 360) { default: case 0: exif_orientation = ExifInterface.ORIENTATION_NORMAL; break; case 90: exif_orientation = cameraMirrored ? ExifInterface.ORIENTATION_ROTATE_270 : ExifInterface.ORIENTATION_ROTATE_90; break; case 180: exif_orientation = ExifInterface.ORIENTATION_ROTATE_180; break; case 270: exif_orientation = cameraMirrored ? ExifInterface.ORIENTATION_ROTATE_90 : ExifInterface.ORIENTATION_ROTATE_270; break; } } if (!enableExifTagOrientation) exif_orientation = ExifInterface.ORIENTATION_NORMAL; File parent = file.getParentFile(); String path = parent.toString().toLowerCase(); String name = parent.getName().toLowerCase(); values = new ContentValues(); values.put(ImageColumns.TITLE, file.getName().substring(0, file.getName().lastIndexOf(".") >= 0 ? file.getName().lastIndexOf(".") : file.getName().length())); values.put(ImageColumns.DISPLAY_NAME, file.getName()); values.put(ImageColumns.DATE_TAKEN, System.currentTimeMillis()); values.put(ImageColumns.MIME_TYPE, "image/jpeg"); if (enableExifTagOrientation) { if (writeOrientationTag) { values.put(ImageColumns.ORIENTATION, String.valueOf( (Integer.parseInt(orientation_tag) + additionalRotationValue + 360) % 360)); } else { values.put(ImageColumns.ORIENTATION, String.valueOf((additionalRotationValue + 360) % 360)); } } else { values.put(ImageColumns.ORIENTATION, String.valueOf(0)); } values.put(ImageColumns.BUCKET_ID, path.hashCode()); values.put(ImageColumns.BUCKET_DISPLAY_NAME, name); values.put(ImageColumns.DATA, file.getAbsolutePath()); File tmpFile; if (ApplicationScreen.getForceFilename() == null) { tmpFile = file; } else { tmpFile = new File(getApplicationContext().getFilesDir(), "buffer.jpeg"); tmpFile.createNewFile(); copyFromForceFileName(tmpFile); } if (!enableExifTagOrientation) { Matrix matrix = new Matrix(); if (writeOrientationTag && (orientation + additionalRotationValue) != 0) { matrix.postRotate((orientation + additionalRotationValue + 360) % 360); rotateImage(tmpFile, matrix); } else if (!writeOrientationTag && additionalRotationValue != 0) { matrix.postRotate((additionalRotationValue + 360) % 360); rotateImage(tmpFile, matrix); } } if (useGeoTaggingPrefExport) { Location l = MLocation.getLocation(getApplicationContext()); if (l != null) { double lat = l.getLatitude(); double lon = l.getLongitude(); boolean hasLatLon = (lat != 0.0d) || (lon != 0.0d); if (hasLatLon) { values.put(ImageColumns.LATITUDE, l.getLatitude()); values.put(ImageColumns.LONGITUDE, l.getLongitude()); } } } File modifiedFile = saveExifTags(tmpFile, sessionID, i, x, y, exif_orientation, useGeoTaggingPrefExport, enableExifTagOrientation); if (ApplicationScreen.getForceFilename() == null) { file.delete(); modifiedFile.renameTo(file); } else { copyToForceFileName(modifiedFile); tmpFile.delete(); modifiedFile.delete(); } Uri uri = getApplicationContext().getContentResolver().insert(Images.Media.EXTERNAL_CONTENT_URI, values); broadcastNewPicture(uri); } ApplicationScreen.getMessageHandler().sendEmptyMessage(ApplicationInterface.MSG_EXPORT_FINISHED); } catch (IOException e) { e.printStackTrace(); ApplicationScreen.getMessageHandler() .sendEmptyMessage(ApplicationInterface.MSG_EXPORT_FINISHED_IOEXCEPTION); return; } catch (Exception e) { e.printStackTrace(); ApplicationScreen.getMessageHandler().sendEmptyMessage(ApplicationInterface.MSG_EXPORT_FINISHED); } finally { ApplicationScreen.setForceFilename(null); } }
From source file:me.tipi.kiosk.ui.fragments.OCRFragment.java
@Override public void onMetadataAvailable(Metadata metadata) { // This method will be called when metadata becomes available during recognition process. // Here, for every metadata type that is allowed through metadata settings, // desired actions can be performed. // detection metadata contains detection locations if (metadata instanceof DetectionMetadata) { // detection location is written inside DetectorResult DetectorResult detectorResult = ((DetectionMetadata) metadata).getDetectionResult(); // DetectorResult can be null - this means that detection has failed if (detectorResult == null) { if (mQvManager != null) { // begin quadrilateral animation to its default position // (internally displays FAIL status) mQvManager.animateQuadToDefaultPosition(); }//from ww w . j av a2s.c o m // when points of interested have been detected (e.g. QR code), this will be returned as PointsDetectorResult } else if (detectorResult instanceof QuadDetectorResult) { // begin quadrilateral animation to detected quadrilateral mQvManager.animateQuadToDetectionPosition((QuadDetectorResult) detectorResult); } } else if (metadata instanceof ImageMetadata) { // obtain image // Please note that Image's internal buffers are valid only // until this method ends. If you want to save image for later, // obtained a cloned image with image.clone(). if (guest.passportPath == null || TextUtils.isEmpty(guest.passportPath) || this.results == null) { Image image = ((ImageMetadata) metadata).getImage(); if (image != null && image.getImageType() == ImageType.SUCCESSFUL_SCAN) { Timber.w("Metadata type is successful frame image, we go to save it"); image.clone(); Timber.w("Ocr meta data captured"); final Bitmap bitmap = image.convertToBitmap(); Timber.w("Metadata converted to bitmap"); final Uri photoUri = ImageUtility.savePassportPicture(getActivity(), bitmap); Timber.w("OCR Uri got back from file helper with path: %s", photoUri != null ? photoUri.getPath() : "NO OCR FILE PATH!!!!!"); ExifInterface ei = null; try { ei = new ExifInterface(photoUri.getPath()); } catch (IOException e) { e.printStackTrace(); } int orientation = ei != null ? ei.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED) : 0; Timber.w("Ocr image orientation angle is: %d", orientation); Bitmap rotated = null; switch (orientation) { case ExifInterface.ORIENTATION_ROTATE_90: rotated = rotateImage(bitmap, 90); break; case ExifInterface.ORIENTATION_ROTATE_180: rotated = rotateImage(bitmap, 180); break; case ExifInterface.ORIENTATION_ROTATE_270: rotated = rotateImage(bitmap, 270); break; case ExifInterface.ORIENTATION_UNDEFINED: rotated = rotateImage(bitmap, 90); break; case ExifInterface.ORIENTATION_NORMAL: default: break; } final Uri rotatedUri = ImageUtility.savePassportPicture(getActivity(), rotated); Timber.w("OCR ROTATED Uri got back from file helper with path: %s", rotatedUri != null ? rotatedUri.getPath() : "NO OCR FILE PATH!!!!!"); guest.passportPath = rotatedUri.getPath(); Timber.w("Ocr path saved with path: %s", rotatedUri.getPath()); } } else { Timber.w("We have ocr path and it's : %s", guest.passportPath); } // to convert the image to Bitmap, call image.convertToBitmap() // after this line, image gets disposed. If you want to save it // for later, you need to clone it with image.clone() } }
From source file:mobisocial.bento.todo.ui.TodoListFragment.java
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (DEBUG)/*w w w . j a v a 2 s .com*/ Log.d(TAG, "requestCode: " + requestCode + ", resultCode: " + resultCode); if (resultCode == Activity.RESULT_OK) { try { File imageFile = null; if (requestCode == REQUEST_IMAGE_CAPTURE) { imageFile = JpgFileHelper.getTmpFile(); } else if (requestCode == REQUEST_GALLERY) { Uri uri = data.getData(); if (uri == null || uri.toString().length() == 0) { return; } if (DEBUG) Log.d(TAG, "data URI: " + uri.toString()); ContentResolver cr = getActivity().getContentResolver(); String[] columns = { MediaColumns.DATA, MediaColumns.DISPLAY_NAME }; Cursor c = cr.query(uri, columns, null, null, null); if (c != null && c.moveToFirst()) { if (c.getString(0) != null) { //regular processing for gallery files imageFile = new File(c.getString(0)); } else { final InputStream is = getActivity().getContentResolver().openInputStream(uri); imageFile = JpgFileHelper.saveTmpFile(is); is.close(); } } else if (uri.toString().startsWith("content://com.android.gallery3d.provider")) { // motorola xoom doesn't work for contentresolver even if the image comes from picasa. // So just adds the condition of startsWith... // See in detail : http://dimitar.me/how-to-get-picasa-images-using-the-image-picker-on-android-devices-running-any-os-version/ uri = Uri.parse( uri.toString().replace("com.android.gallery3d", "com.google.android.gallery3d")); final InputStream is = getActivity().getContentResolver().openInputStream(uri); imageFile = JpgFileHelper.saveTmpFile(is); is.close(); } else { // http or https HttpURLConnection http = null; URL url = new URL(uri.toString()); http = (HttpURLConnection) url.openConnection(); http.setRequestMethod("GET"); http.connect(); final InputStream is = http.getInputStream(); imageFile = JpgFileHelper.saveTmpFile(is); is.close(); if (http != null) http.disconnect(); } } if (imageFile.exists() && imageFile.length() > 0) { if (DEBUG) Log.d(TAG, "imageFile exists=" + imageFile.exists() + " length=" + imageFile.length() + " path=" + imageFile.getPath()); float degrees = 0; try { ExifInterface exif = new ExifInterface(imageFile.getPath()); switch (exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL)) { case ExifInterface.ORIENTATION_ROTATE_90: degrees = 90; break; case ExifInterface.ORIENTATION_ROTATE_180: degrees = 180; break; case ExifInterface.ORIENTATION_ROTATE_270: degrees = 270; break; default: degrees = 0; break; } } catch (IOException e) { e.printStackTrace(); } Bitmap bitmap = BitmapHelper.getResizedBitmap(imageFile, BitmapHelper.MAX_IMAGE_WIDTH, BitmapHelper.MAX_IMAGE_HEIGHT, degrees); TodoListItem item = new TodoListItem(); item.uuid = UUID.randomUUID().toString(); item.title = ""; item.description = ""; item.bDone = false; item.hasImage = true; item.creDateMillis = System.currentTimeMillis(); item.modDateMillis = System.currentTimeMillis(); item.creContactId = mManager.getLocalContactId(); item.modContactId = mManager.getLocalContactId(); StringBuilder msg = new StringBuilder( getString(R.string.feed_msg_added_photo, mManager.getLocalName())); String plainMsg = UIUtils.getPlainString(mManager.getBentoListItem().bento.name, msg.toString()); mManager.addTodo(item, bitmap, plainMsg); refreshView(); JpgFileHelper.deleteTmpFile(); } } catch (Exception e) { e.printStackTrace(); } } }
From source file:com.klinker.android.twitter.activities.compose.Compose.java
public static Bitmap rotateBitmap(Bitmap bitmap, int orientation) { Log.v("talon_composing_image", "rotation: " + orientation); try {/*from www.jav a 2s.c o m*/ Matrix matrix = new Matrix(); switch (orientation) { case ExifInterface.ORIENTATION_NORMAL: return bitmap; case ExifInterface.ORIENTATION_FLIP_HORIZONTAL: matrix.setScale(-1, 1); break; case ExifInterface.ORIENTATION_ROTATE_180: matrix.setRotate(180); break; case ExifInterface.ORIENTATION_FLIP_VERTICAL: matrix.setRotate(180); matrix.postScale(-1, 1); break; case ExifInterface.ORIENTATION_TRANSPOSE: matrix.setRotate(90); matrix.postScale(-1, 1); break; case ExifInterface.ORIENTATION_ROTATE_90: matrix.setRotate(90); break; case ExifInterface.ORIENTATION_TRANSVERSE: matrix.setRotate(-90); matrix.postScale(-1, 1); break; case ExifInterface.ORIENTATION_ROTATE_270: matrix.setRotate(-90); break; default: return bitmap; } try { Bitmap bmRotated = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true); bitmap.recycle(); return bmRotated; } catch (OutOfMemoryError e) { e.printStackTrace(); return null; } } catch (Exception e) { e.printStackTrace(); } return bitmap; }
From source file:com.cloverstudio.spika.CameraCropActivity.java
protected void onPhotoTaken(String path) { String fileName = Uri.parse(path).getLastPathSegment(); mFilePath = CameraCropActivity.this.getExternalCacheDir() + "/" + fileName; if (!path.equals(mFilePath)) { copy(new File(path), new File(mFilePath)); }/*from w ww.j a va 2s . co m*/ new AsyncTask<String, Void, byte[]>() { boolean loadingFailed = false; @Override protected byte[] doInBackground(String... params) { try { if (params == null) return null; File f = new File(params[0]); ExifInterface exif = new ExifInterface(f.getPath()); int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL); int angle = 0; if (orientation == ExifInterface.ORIENTATION_ROTATE_90) { angle = 90; } else if (orientation == ExifInterface.ORIENTATION_ROTATE_180) { angle = 180; } else if (orientation == ExifInterface.ORIENTATION_ROTATE_270) { angle = 270; } Matrix mat = new Matrix(); mat.postRotate(angle); BitmapFactory.Options optionsMeta = new BitmapFactory.Options(); optionsMeta.inJustDecodeBounds = true; BitmapFactory.decodeFile(f.getAbsolutePath(), optionsMeta); BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = BitmapManagement.calculateInSampleSize(optionsMeta, 640, 640); options.inPurgeable = true; options.inInputShareable = true; mBitmap = BitmapFactory.decodeStream(new FileInputStream(f), null, options); mBitmap = Bitmap.createBitmap(mBitmap, 0, 0, mBitmap.getWidth(), mBitmap.getHeight(), mat, true); _scaleBitmap(); return null; } catch (Exception ex) { loadingFailed = true; finish(); } return null; } @Override protected void onPostExecute(byte[] result) { super.onPostExecute(result); if (null != mBitmap) { mImageView.setImageBitmap(mBitmap); mImageView.setScaleType(ScaleType.MATRIX); translateMatrix.setTranslate(-(mBitmap.getWidth() - crop_container_size) / 2f, -(mBitmap.getHeight() - crop_container_size) / 2f); mImageView.setImageMatrix(translateMatrix); matrix = translateMatrix; } } }.execute(mFilePath); }
From source file:mobisocial.bento.ebento.ui.EditFragment.java
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (DEBUG)/*from w w w . ja v a2 s .co m*/ Log.d(TAG, "requestCode: " + requestCode + ", resultCode: " + resultCode); if (resultCode == Activity.RESULT_OK) { try { File imageFile = null; if (requestCode == REQUEST_IMAGE_CAPTURE) { imageFile = JpgFileHelper.getTmpFile(); } else if (requestCode == REQUEST_GALLERY) { Uri uri = data.getData(); if (uri == null || uri.toString().length() == 0) { return; } if (DEBUG) Log.d(TAG, "data URI: " + uri.toString()); ContentResolver cr = getActivity().getContentResolver(); String[] columns = { MediaColumns.DATA, MediaColumns.DISPLAY_NAME }; Cursor c = cr.query(uri, columns, null, null, null); if (c != null && c.moveToFirst()) { if (c.getString(0) != null) { //regular processing for gallery files imageFile = new File(c.getString(0)); } else { final InputStream is = getActivity().getContentResolver().openInputStream(uri); imageFile = JpgFileHelper.saveTmpFile(is); is.close(); } } else if (uri.toString().startsWith("content://com.android.gallery3d.provider")) { // motorola xoom doesn't work for contentresolver even if the image comes from picasa. // So just adds the condition of startsWith... // See in detail : http://dimitar.me/how-to-get-picasa-images-using-the-image-picker-on-android-devices-running-any-os-version/ uri = Uri.parse( uri.toString().replace("com.android.gallery3d", "com.google.android.gallery3d")); final InputStream is = getActivity().getContentResolver().openInputStream(uri); imageFile = JpgFileHelper.saveTmpFile(is); is.close(); } else { // http or https HttpURLConnection http = null; URL url = new URL(uri.toString()); http = (HttpURLConnection) url.openConnection(); http.setRequestMethod("GET"); http.connect(); final InputStream is = http.getInputStream(); imageFile = JpgFileHelper.saveTmpFile(is); is.close(); if (http != null) http.disconnect(); } } if (imageFile.exists() && imageFile.length() > 0) { if (DEBUG) Log.d(TAG, "imageFile exists=" + imageFile.exists() + " length=" + imageFile.length() + " path=" + imageFile.getPath()); float degrees = 0; try { ExifInterface exif = new ExifInterface(imageFile.getPath()); switch (exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL)) { case ExifInterface.ORIENTATION_ROTATE_90: degrees = 90; break; case ExifInterface.ORIENTATION_ROTATE_180: degrees = 180; break; case ExifInterface.ORIENTATION_ROTATE_270: degrees = 270; break; default: degrees = 0; break; } Log.d(TAG, exif.getAttribute(ExifInterface.TAG_ORIENTATION)); } catch (IOException e) { e.printStackTrace(); } sImageOrg = BitmapHelper.getResizedBitmap(imageFile, BitmapHelper.MAX_IMAGE_WIDTH, BitmapHelper.MAX_IMAGE_HEIGHT, degrees); mbImageChanged = true; // ImageView mImageView.setImageBitmap( BitmapHelper.getResizedBitmap(sImageOrg, mTargetWidth, mTargetHeight, 0)); mImageView.setVisibility(View.VISIBLE); mRootView.invalidate(); imageFile.delete(); JpgFileHelper.deleteTmpFile(); } } catch (Exception e) { e.printStackTrace(); } } }
From source file:org.openmrs.mobile.activities.addeditpatient.AddEditPatientFragment.java
private Bitmap getPortraitImage(String imagePath) { BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 4;//from w w w. j a v a 2 s .c o m Bitmap photo = BitmapFactory.decodeFile(output.getPath(), options); float rotateAngle; try { ExifInterface exifInterface = new ExifInterface(imagePath); int orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED); switch (orientation) { case ExifInterface.ORIENTATION_ROTATE_270: rotateAngle = 270; break; case ExifInterface.ORIENTATION_ROTATE_180: rotateAngle = 180; break; case ExifInterface.ORIENTATION_ROTATE_90: rotateAngle = 90; break; default: rotateAngle = 0; break; } return rotateImage(photo, rotateAngle); } catch (IOException e) { logger.e(e.getMessage()); return photo; } }
From source file:com.snappy.CameraCropActivity.java
protected void onPhotoTaken(final String path) { String fileName = Uri.parse(path).getLastPathSegment(); mFilePath = CameraCropActivity.this.getExternalCacheDir() + "/" + fileName; if (!path.equals(mFilePath)) { copy(new File(path), new File(mFilePath)); }/*from ww w. j a v a2 s. c o m*/ new AsyncTask<String, Void, byte[]>() { boolean loadingFailed = false; @Override protected byte[] doInBackground(String... params) { try { if (!path.equals(mFilePath)) { copy(new File(path), new File(mFilePath)); } if (params == null) return null; File f = new File(params[0]); ExifInterface exif = new ExifInterface(f.getPath()); int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL); int angle = 0; if (orientation == ExifInterface.ORIENTATION_ROTATE_90) { angle = 90; } else if (orientation == ExifInterface.ORIENTATION_ROTATE_180) { angle = 180; } else if (orientation == ExifInterface.ORIENTATION_ROTATE_270) { angle = 270; } Matrix mat = new Matrix(); mat.postRotate(angle); BitmapFactory.Options optionsMeta = new BitmapFactory.Options(); optionsMeta.inJustDecodeBounds = true; BitmapFactory.decodeFile(f.getAbsolutePath(), optionsMeta); BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = BitmapManagement.calculateInSampleSize(optionsMeta, 640, 640); options.inPurgeable = true; options.inInputShareable = true; mBitmap = BitmapFactory.decodeStream(new FileInputStream(f), null, options); mBitmap = Bitmap.createBitmap(mBitmap, 0, 0, mBitmap.getWidth(), mBitmap.getHeight(), mat, true); _scaleBitmap(); return null; } catch (Exception ex) { loadingFailed = true; finish(); } return null; } @Override protected void onPostExecute(byte[] result) { super.onPostExecute(result); if (null != mBitmap) { mImageView.setImageBitmap(mBitmap); mImageView.setScaleType(ScaleType.MATRIX); translateMatrix.setTranslate(-(mBitmap.getWidth() - crop_container_size) / 2f, -(mBitmap.getHeight() - crop_container_size) / 2f); mImageView.setImageMatrix(translateMatrix); matrix = translateMatrix; } } }.execute(mFilePath); }
From source file:com.bai.android.ui.OtherActivity.java
private static int getOrientationFromFile(String imagePath) { int orientation = ExifInterface.ORIENTATION_NORMAL; int rotation; // get orientation of file try {/*from w w w .ja v a 2 s .co m*/ ExifInterface exif = new ExifInterface(imagePath); orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL); } catch (IOException e) { e.printStackTrace(); } // set the rotation from the file orientation switch (orientation) { case ExifInterface.ORIENTATION_ROTATE_90: rotation = 90; break; case ExifInterface.ORIENTATION_ROTATE_270: rotation = 270; break; case ExifInterface.ORIENTATION_ROTATE_180: rotation = 180; break; default: rotation = ExifInterface.ORIENTATION_NORMAL; break; } return rotation; }