से पहले चित्र को घुमाएं मैंने अभी अपनी कैमरा गतिविधि समाप्त की है और यह आश्चर्यजनक रूप से डेटा को सहेज रहा है। मैं के बाद चित्र लिया जाता है तो क्या करें:एंड्रॉइड घुमाएं चित्र
protected void savePictureData() {
try {
FileOutputStream fs = new FileOutputStream(this.photo);
fs.write(this.lastCamData);
fs.close(); //okay, wonderful! file is just written to the sdcard
//---------------------
//---------------------
//TODO in here: dont save just the file but ROTATE the image and then save it!
//---------------------
//---------------------
Intent data = new Intent(); //just a simple intent returning some data...
data.putExtra("picture_name", this.fname);
data.putExtra("byte_data", this.lastCamData);
this.setResult(SAVED_TOOK_PICTURE, data);
this.finish();
} catch (IOException e) {
e.printStackTrace();
this.IOError();
}
}
क्या मैं करना चाहते हैं इसके बाद के संस्करण कोड में दी गई टिप्पणी के रूप में पहले से ही है। मैं नहीं चाहता कि छवि सिर्फ फ़ाइल में सहेजी जाए लेकिन घुमाए और फिर बचाया जाए! धन्यवाद!
// संपादित: क्या मैं करने के लिए वर्तमान में कर रहा हूँ
byte[] pictureBytes;
Bitmap thePicture = BitmapFactory.decodeByteArray(this.lastCamData, 0, this.lastCamData.length);
Matrix m = new Matrix();
m.postRotate(90);
thePicture = Bitmap.createBitmap(thePicture, 0, 0, thePicture.getWidth(), thePicture.getHeight(), m, true);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
thePicture.compress(CompressFormat.JPEG, 100, bos);
pictureBytes = bos.toByteArray();
FileOutputStream fs = new FileOutputStream(this.photo);
fs.write(pictureBytes);
fs.close();
Intent data = new Intent();
data.putExtra("picture_name", this.fname);
data.putExtra("byte_data", pictureBytes);
this.setResult(SAVED_TOOK_PICTURE, data);
this.finish();
के संभावित डुप्लिकेट [एंड्रॉयड: कैसे एक केंद्र बिंदु पर एक बिटमैप को घुमाने के लिए] (http://stackoverflow.com/questions/4166917/android-how-to-rotate-a-bitmap-on-a -center-point) – slayton
नहीं, वास्तव में, – androidavid
ठीक से घुमाने और सहेजने के तरीके के बारे में और अधिक जानकारी मेरा समाधान काम करता है - प्रोजेक्ट को साफ़ किया गया है ... – androidavid