Saya tidak memiliki pemahaman yang mendalam tentang konten pemrosesan gambar Java, jadi saya akan memaafkan Anda atas kata -kata sederhana Anda.
Java mengimplementasikan penyesuaian tingkat warna, yaitu, menyesuaikan komponen RGB dari gambar, dan juga dapat menyesuaikan kecerahan gambar.
Kode uji
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}Kode penyesuaian tingkat warna
// Sesuaikan level warna gambar, sesuaikan komponen RGB publ static BufferedImage img_color_gradation (bufferedimage imgsrc, int r, int g, int b) {coba {// buat gambar tanpa transparansi bufferedImage back = bufferedimage baru (imgsrc.getwidth (), imgsrc.getHeight (), bufferedimage.type_int_rgb); Int width = imgsrc.getWidth (); int tinggi = imgsrc.getHeight (); untuk (int i = 0; i <height; i ++) {for (int j = 0; j <width; j ++) {int pixel = imgsrc.getrgb (j, i); Warna warna = warna baru (piksel); int red = color.getRed ()+r; if (merah> 255) merah = 255; if (merah <0) merah = 0; int green = color.getGreen ()+g; if (hijau> 255) hijau = 255; if (hijau <0) hijau = 0; int blue = color.getBlue ()+b; if (biru> 255) biru = 255; if (biru <0) biru = 0; warna = warna baru (merah, hijau, biru); int x = color.getrgb (); back.setrgb (j, i, x); }} kembali; } catch (Exception e) {E.PrintStackTrace (); kembali nol; }}Bacaan gambar, dan fungsi penyimpanan
// Baca gambar public static BufferedImage File2IMG (string imgpath) {coba {bufferedImage bufferedImage = Imageo.read (file baru (imgpath)); return bufferedImage; } catch (Exception e) {E.PrintStackTrace (); kembali nol; }} // Simpan gambar, sejauh mana dalam format, "jpg", "png", dll. Public static void img2file (bufferedImage IMG, string Extent, string newfile) {coba {imageo.write (img, luas, file baru (newfile)); } catch (Exception e) {E.PrintStackTrace (); }}membagikan:
Berikut ini adalah rumus perhitungan untuk kecerahan dan kontras
;
Kecerahan: nrgb = rgb+mBrightness
Kontras: NRGB = (RGB-AVG)*(1 persen%)+Rentang nilai%%% adalah (-1 ~ 1) 0 adalah nilai aslinya. Formula kontras juga sangat bagus untuk dibuktikan. Perluas.
NRGB = RGB-RGB*Persen%-AVG+AVG*Persen%+AVG
nrgb = rgb-rgb*persen%+rata-rata*persen%
Untuk seluruh matriks gambar, kecerahan harus dipastikan bahwa jumlah aljabar dari seluruh matriks tidak berubah.
Dan avg = (rgb1+rgb2+... rgbn)/n (1)
(nrgb1+nrgb2+... nrgbn) = (rgb1+rgb2+... rgbn)+n*rata-rata*persen%-(rgb1+rgb2+... rgbn)*persen% (2)
Cukup gantikan formula (1) ke dalam rumus (2)
Meringkaskan
Di atas adalah semua konten dari artikel ini tentang penyesuaian tingkat warna dan contoh kode penyesuaian gambar Java, saya harap ini akan membantu semua orang. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya.