Чтобы преобразовать изображение в карандашный набросок, вам необходимо применить 3 фильтра
СЕРЫЙ ФИЛЬТР
ОБРАТИТЬЦВЕТА
GAUSSIAN BLUR
после успешного применения этих фильтров используйте функцию colordodgeblend, чтобы сделать карандаш как эскиз
Оттенки серогофильтр
ColorMatrix matrix = new ColorMatrix();
matrix.setSaturation(0);
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);
imgView.setColorFilter(filter);
КОД ДЛЯ ПРИМЕНЕНИЯ INVERT FILTER
float[] colorMatrix_Negative = {
-1.0f, 0, 0, 0, 255, //red
0, -1.0f, 0, 0, 255, //green
0, 0, -1.0f, 0, 255, //blue
0, 0, 0, 1.0f, 0 //alpha};
ColorMatrix colorMatrix = new ColorMatrix();
colorMatrix.set(colorMatrix_Negative);
ColorFilter colorFilter_Negative = new ColorMatrixColorFilter(colorMatrix_Negative);
КОД ДЛЯ GAUSSIAN BLUR
public static Bitmap applyGaussianBlur(Bitmap src) {
double[][] GaussianBlurConfig = new double[][]{
{-1, 0, -1},
{0, 4, 0},
{-1, 0, -1}
};
ConvolutionMatrix convMatrix = new ConvolutionMatrix(3);
convMatrix.applyConfig(GaussianBlurConfig);
convMatrix.Factor = 1;
convMatrix.Offset = 150;
//return out put bitmap return ConvolutionMatrix.computeConvolution3x3(src, convMatrix);
}
для дополнительной информации