Hi bạn có thể làm cho màu trắng hình ảnh màu đen n sử dụng độ tương phản.
Xem mã ..
public static Bitmap createContrast(Bitmap src, double value) {
// image size
int width = src.getWidth();
int height = src.getHeight();
// create output bitmap
Bitmap bmOut = Bitmap.createBitmap(width, height, src.getConfig());
// color information
int A, R, G, B;
int pixel;
// get contrast value
double contrast = Math.pow((100 + value)/100, 2);
// scan through all pixels
for(int x = 0; x < width; ++x) {
for(int y = 0; y < height; ++y) {
// get pixel color
pixel = src.getPixel(x, y);
A = Color.alpha(pixel);
// apply filter contrast for every channel R, G, B
R = Color.red(pixel);
R = (int)(((((R/255.0) - 0.5) * contrast) + 0.5) * 255.0);
if(R < 0) { R = 0; }
else if(R > 255) { R = 255; }
G = Color.red(pixel);
G = (int)(((((G/255.0) - 0.5) * contrast) + 0.5) * 255.0);
if(G < 0) { G = 0; }
else if(G > 255) { G = 255; }
B = Color.red(pixel);
B = (int)(((((B/255.0) - 0.5) * contrast) + 0.5) * 255.0);
if(B < 0) { B = 0; }
else if(B > 255) { B = 255; }
// set new pixel color to output bitmap
bmOut.setPixel(x, y, Color.argb(A, R, G, B));
}
}
return bmOut;
}
Thiết lập giá trị gấp đôi lên 50 theo yêu cầu mathod. Ví dụ createContrast(Bitmap src, 50)
Nguồn
2012-04-17 08:08:54
đó là tuyệt vời và nó hoạt động hoàn hảo nhưng nó chậm. Tôi đang chuyển đổi 6 hình ảnh jpeg 300px * 300px trên thiết bị Android thông thường và mất 6 giây để hoàn thành điều đó! có điều gì tôi có thể làm để giảm thời gian không? Tôi có nghĩa là bên cạnh làm cho hình ảnh của tôi nhỏ hơn về kích thước! – Reza