我想要替換圖像中的顏色,它被分配到imageview我在谷歌搜索很多時間,但仍然沒有找到任何有用的資源。我已經看到在java rgbimagefilter但它不在Android的使用,因此下面的截圖我的除外輸出:在Android的色彩替代品
原始圖像
後更換綠三色爲灰色像下面的圖像:
我知道像read image這樣的基本概念每個像素比較rgb值的匹配取代新顏色,但我不知道如何在android中以編程方式做到這一點。
我想要替換圖像中的顏色,它被分配到imageview我在谷歌搜索很多時間,但仍然沒有找到任何有用的資源。我已經看到在java rgbimagefilter但它不在Android的使用,因此下面的截圖我的除外輸出:在Android的色彩替代品
原始圖像
後更換綠三色爲灰色像下面的圖像:
我知道像read image這樣的基本概念每個像素比較rgb值的匹配取代新顏色,但我不知道如何在android中以編程方式做到這一點。
這裏有一些建議(嘗試搜索圖像的下一次處理;-)):
Aviary SDK -> And the code for it.
Here你可以找到各種圖像處理的一個很好的教程。
在這裏你可以找到一些庫:
最後這個項目here。
有一個愉快的閱讀:-)
如果你不希望使用任何第三方庫,你可以檢查下面的代碼,讓你開始:
package pete.android.study;
import android.graphics.Bitmap;
public class ImageProcessor {
Bitmap mImage;
boolean mIsError = false;
public ImageProcessor(final Bitmap image) {
mImage = image.copy(image.getConfig(), image.isMutable());
if(mImage == null) {
mIsError = true;
}
}
public boolean isError() {
return mIsError;
}
public void setImage(final Bitmap image) {
mImage = image.copy(image.getConfig(), image.isMutable());
if(mImage == null) {
mIsError = true;
} else {
mIsError = false;
}
}
public Bitmap getImage() {
if(mImage == null){
return null;
}
return mImage.copy(mImage.getConfig(), mImage.isMutable());
}
public void free() {
if(mImage != null && !mImage.isRecycled()) {
mImage.recycle();
mImage = null;
}
}
public Bitmap replaceColor(int fromColor, int targetColor) {
if(mImage == null) {
return null;
}
int width = mImage.getWidth();
int height = mImage.getHeight();
int[] pixels = new int[width * height];
mImage.getPixels(pixels, 0, width, 0, 0, width, height);
for(int x = 0; x < pixels.length; ++x) {
pixels[x] = (pixels[x] == fromColor) ? targetColor : pixels[x];
}
Bitmap newImage = Bitmap.createBitmap(width, height, mImage.getConfig());
newImage.setPixels(pixels, 0, width, 0, 0, width, height);
return newImage;
}
}
http://developer.android.com/reference/android/graphics/Bitmap.html get/setPixel ... – Selvin
@Selvin如何讀取每個像素的RGB和它的比較操作image.can你我任何代碼片段? –