2016-07-11 69 views

回答

0

我過去的做法是將圖像寫入文件系統然後解碼。誠然,它有點低效,但它的功能。

這需要很多步驟。我建議你閱讀這個documentation。它描述了拍攝圖像並將其保存到文件系統的過程,您需要在之前執行,然後才能執行其餘的這些步驟。

接下來,您將需要使用BitmapFactory來解碼圖像,這將給你一個Bitmap的實例,你可以做各種事情(記錄here)。在此示例中,我使用getPixel()返回位於(50, 50)的像素的Color對象。此示例假定圖像的路徑爲mCurrentPhotoPath,但應保存在圖像的任何位置。

private Color getColor() { 
    // Get the dimensions of the View 
    int targetW = mImageView.getWidth(); 
    int targetH = mImageView.getHeight(); 

    // Get the dimensions of the bitmap 
    BitmapFactory.Options bmOptions = new BitmapFactory.Options(); 
    bmOptions.inJustDecodeBounds = true; 
    BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions); 
    int photoW = bmOptions.outWidth; 
    int photoH = bmOptions.outHeight; 

    // Determine how much to scale down the image 
    int scaleFactor = Math.min(photoW/targetW, photoH/targetH); 

    // Decode the image file into a Bitmap sized to fill the View 
    bmOptions.inJustDecodeBounds = false; 
    bmOptions.inSampleSize = scaleFactor; 
    bmOptions.inPurgeable = true; 
    Bitmap bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions); 
    return bitmap.getPixel(50, 50); 
} 

你可以從這個Color對象RGB值,這是我想你想要做的事。這也可以在Android Developers的Color對象文檔中找到。