2010-06-24 17 views
38

को देखने को बचाने मुझे लगता है कि मूल रूप से परतें एक और छवि पर छवि ओवरले के लिए और फिर मैं एक jpg या png के रूप में ओवरले के साथ चित्र को बचाने के लिए चाहते हैं एक Android एप्लिकेशन लिखने के लिए करना चाहते हैं। असल में यह पूरा विचार होगा कि मैं सहेजना चाहता हूं।एंड्रॉयड jpg या png

नमूना कोड बहुत उपयोगी होगा।

संपादित करें:

मैं अपने सुझाव बाहर की कोशिश की और तारांकित लाइन पर एक अशक्त सूचक हो रही है।

import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 

import android.app.Activity; 
import android.graphics.Bitmap; 
import android.graphics.Bitmap.CompressFormat; 
import android.os.Bundle; 
import android.os.Environment; 
import android.widget.LinearLayout; 
import android.widget.TextView; 

    public class EditPhoto extends Activity { 
     /** Called when the activity is first created. */ 
    LinearLayout ll = null; 
    TextView tv = null; 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 
      tv = (TextView) findViewById(R.id.text); 
      ll = (LinearLayout) findViewById(R.id.layout); 
      ll.setDrawingCacheEnabled(true); 
      Bitmap b = ll.getDrawingCache(); 
      File sdCard = Environment.getExternalStorageDirectory(); 
      File file = new File(sdCard, "image.jpg"); 
      FileOutputStream fos; 
     try { 
     fos = new FileOutputStream(file); 
     *** b.compress(CompressFormat.JPEG, 95,fos); 
     } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     } 

     } 
    } 
+0

इस पर कुछ भी नहीं? मुझे पता है कि यह संभव है, मैंने इसे अन्य ऐप्स में देखा है। – shaneburgess

+0

क्या आप हमें कुछ कोड बता सकते हैं कि आप संपादन कैसे कर रहे हैं? –

+0

अभी यह एक विचार है, लेकिन मेरे पास फोटो छविदृश्य पर ओवरलेड एक छविदृश्य होगा। जब तक ऐसा करने का कोई बेहतर तरीका न हो। – shaneburgess

उत्तर

74

आप व्यू के ड्राइंग कैश का लाभ उठा सकते हैं।

view.setDrawingCacheEnabled(true); 
Bitmap b = view.getDrawingCache(); 
b.compress(CompressFormat.JPEG, 95, new FileOutputStream("/some/location/image.jpg")); 

आपका विचार कहां है। 95 जेपीजी संपीड़न की गुणवत्ता है। और फ़ाइल आउटपुट स्ट्रीम बस यही है।

+0

मैंने आपके कोड की कोशिश की, लेकिन फ़ाइलऑटपुटस्ट्रीम के लिए रूट कहां से शुरू होता है? बीकॉज़ मैंने एमुलेटर के फ़ोल्डरों को देखने की कोशिश की और सहेजी गई छवि नहीं मिली ... – Sephy

+2

यह फोन रूट पर शुरू होता है। इसलिए यदि आप sdcard से कुछ लोड करना चाहते हैं, तो sdcard के लिए रूट प्राप्त करने के लिए Environment.getExternalStorageDirectory() का उपयोग करें। – Moncader

+0

तो क्या इस मामले में एक लाइनरलाउट दृश्य हो सकता है और क्या वह लीनियरलाउट में कुछ भी ले जाएगा? – shaneburgess

6
File sdCard = Environment.getExternalStorageDirectory(); 
File file = new File(sdCard, "image.jpg"); 
FileOutputStream fos = new FileOutputStream(file); 

Moncader के उत्तर में b.compress() विधि के तीसरे पैरामीटर के रूप में fos संदर्भ का उपयोग करें। छवि को आपके एसडी कार्ड की रूट निर्देशिका में image.jpg के रूप में संग्रहीत किया जाएगा।

संबंधित मुद्दे