2016-07-11 1 views
1

Я хочу сделать приложение, в котором я хочу сделать снимок и ввести ось x, y, он покажет мне соответствующее значение пикселя точки из захваченного изображения.Обработка изображений (требуется пиксельное значение изображения)

У меня нет знаний об обработке изображений. Итак, как я могу это сделать? Помоги мне .

ответ

0

То, как я это делал в прошлом, - это записать изображение в файловую систему, а затем декодировать его. По общему признанию, это немного неэффективно, но оно функционально.

Для этого требуется ряд шагов. Я предлагаю вам прочитать это documentation. В нем описывается процесс взятия изображения и сохранения его в файловой системе, которую вам нужно будет сделать до, вы можете выполнить остальные шаги.

Для того, чтобы декодировать изображение, вам необходимо будет использовать BitmapFactory, который даст вам экземпляр Bitmap, в котором вы можете делать всевозможные вещи (с документами here). В этом примере я возвращаю объект Color для пикселя, расположенного в (50, 50), используя getPixel(). В этом примере предполагается, что путь изображения равен 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); 
} 

Вы можете получить значение RGB из этого Color объекта, который является то, что я думаю, что вы хотели сделать. Это можно найти в документации по объектам Color на Android Developers.

Смежные вопросы