Não tenho um profundo entendimento do conteúdo do processamento de imagens Java, por isso vou perdoá -lo por suas palavras simples.
O Java implementa o ajuste do nível de cor, ou seja, ajusta o componente RGB da imagem e também pode ajustar o brilho da imagem.
Código de teste
public static void main(String[] args) {//Conversion between file and BufferedImage BufferedImage bi=file2img("test.jpg");//Read the image BufferedImage bii=img_color_gradation(bi,100,0,0);img2file(bii,"jpg","test1.jpg");//Generate the image}Código de ajuste do nível de cor
// Ajusta o nível de cor da imagem, ajuste o componente do rgb public static bufferiMage img_color_gradation (bufferImage imgsrc, int r, int g, int b) {tente {// crie uma imagem sem transparência bufferImage back = new bufferImage (imgsrc.getwidth (), imgsrc.getHeight (), bufferImage.type_int_rgb); int width = imgsrc.getwidth (); int height = imgsrc.getHeight (); for (int i = 0; i <altura; i ++) {for (int j = 0; j <width; j ++) {int pixel = imgsrc.getRgb (j, i); Cor cor = nova cor (pixel); int vermelho = color.getred ()+r; if (vermelho> 255) vermelho = 255; if (vermelho <0) vermelho = 0; int verde = color.getgreen ()+g; if (verde> 255) verde = 255; if (verde <0) verde = 0; int azul = color.getBlue ()+b; if (azul> 255) azul = 255; if (azul <0) azul = 0; cor = nova cor (vermelha, verde, azul); int x = color.getRgb (); back.setrgb (j, i, x); }} retornar; } catch (Exceção e) {e.printStackTrace (); retornar nulo; }}Leitura de imagem e funções de armazenamento
// Leia a imagem public static bufferImage file2img (string imgpath) {try {bufferImage bufferImage = imageio.read (novo arquivo (imgpath)); retornar bufferImage; } catch (Exceção e) {e.printStackTrace (); retornar nulo; }} // Salvar a imagem, a extensão está no formato, "jpg", "png", etc. public static void img2file (bufferImage img, extensão de string, string newFile) {tente {imageio.write (img, extensão, novo arquivo (novo)); } catch (Exceção e) {e.printStackTrace (); }}compartilhar:
A seguir, é apresentada uma fórmula de cálculo para brilho e contraste
(RGB representa o valor do componente de cores da imagem original, o valor que não é processado pela tabela NRGB, Mbrightness representa o valor de brilho ajustado, McOntrast representa o valor de contraste ajustado e o AVG representa o valor médio de toda a imagem Pixel)
Brilho: nrgb = rgb+mbrightness
Contraste: NRGB = (RGB-AVG)*(1%%)+AVG% O intervalo de valor é (-1 ~ 1) 0 é o valor original. A fórmula de contraste também é muito boa para provar. Expandi -lo.
NRGB = RGB-RGB*%-AVG+AVG*%%+AVG
nrgb = rgb-rgb*%%+avg*%%
Para toda a matriz da imagem, o brilho deve ser garantido que a soma algébrica de toda a matriz permaneça inalterada.
E avg = (rgb1+rgb2+... rgbn)/n (1)
(nrgb1+nrgb2+... nrgbn) = (rgb1+rgb2+... rgbn)+n*avg*%%-(rgb1+rgb2+... rgbn)*% (2)
Apenas substitua a fórmula (1) na fórmula (2)
Resumir
O exposto acima é todo o conteúdo deste artigo sobre os exemplos de código de ajuste e ajuste do brilho do nível de cor, espero que seja útil para todos. Se houver alguma falha, deixe uma mensagem para apontá -la.