У меня есть картинка в формате jpg:
И я хочу извлечь значение rgb из каждого пикселя, но я обнаружил, что значения отличаются от Android и Photoshop.
Как и первый пиксель (x = 0, y = 0), значение rgb, которое получил androidTest, составляет 216,231,238, в то время как Photoshop - 217,230,238.
Вот мои коды Android:
InputStream inputStream = appContext.getAssets().open("small_"+ pictureNum +".jpg");
bitmap = BitmapFactory.decodeStream(inputStream);
int width = bitmap.getWidth();
int height = bitmap.getHeight();
int color;
int red, green, blue;
List<Short> pixelList = new ArrayList<>();
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
color = bitmap.getPixel(x, y);
pixelList.add((short) Color.red(color));
pixelList.add((short) Color.green(color));
pixelList.add((short) Color.blue(color));
}
}
Я использую Android Studio 3.1.2.
android {
compileSdkVersion 26
defaultConfig {
minSdkVersion 16
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}}