900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > java 图片去水印_如何用java去除图片水印?

java 图片去水印_如何用java去除图片水印?

时间:2019-12-19 21:52:40

相关推荐

java 图片去水印_如何用java去除图片水印?

展开全部

//运行以下程序即可

publicclassImageInit{

62616964757a686964616fe59b9ee7ad9431333337613233BufferedImageimage;

privateintiw,ih;

privateint[]pixels;

publicImageInit(BufferedImageimage){

this.image=image;

iw=image.getWidth();

ih=image.getHeight();

pixels=newint[iw*ih];

}

publicBufferedImagechangeGrey(){

PixelGrabberpg=newPixelGrabber(image.getSource(),0,0,iw,ih,

pixels,0,iw);

try{

pg.grabPixels();

}catch(InterruptedExceptione){

e.printStackTrace();

}

//设定二值化的域值,默认值为100

intgrey=100;

//对图像进行二值化处理,Alpha值保持不变

ColorModelcm=ColorModel.getRGBdefault();

for(inti=0;i

intred,green,blue;

intalpha=cm.getAlpha(pixels[i]);

if(cm.getRed(pixels[i])>grey){

red=255;

}else{

red=0;

}

if(cm.getGreen(pixels[i])>grey){

green=255;

}else{

green=0;

}

if(cm.getBlue(pixels[i])>grey){

blue=255;

}else{

blue=0;

}

pixels[i]=alpha<

}

//将数组中的象素产生一个图像

ImagetempImg=Toolkit.getDefaultToolkit().createImage(

newMemoryImageSource(iw,ih,pixels,0,iw));

image=newBufferedImage(tempImg.getWidth(null),

tempImg.getHeight(null),BufferedImage.TYPE_INT_BGR);

image.createGraphics().drawImage(tempImg,0,0,null);

returnimage;

}

publicBufferedImagegetMedian(){

PixelGrabberpg=newPixelGrabber(image.getSource(),0,0,iw,ih,

pixels,0,iw);

try{

pg.grabPixels();

}catch(InterruptedExceptione){

e.printStackTrace();

}

//对图像进行中值滤波,Alpha值保持不变

ColorModelcm=ColorModel.getRGBdefault();

for(inti=1;i

for(intj=1;j

intred,green,blue;

intalpha=cm.getAlpha(pixels[i*iw+j]);

//intred2=cm.getRed(pixels[(i-1)*iw+j]);

intred4=cm.getRed(pixels[i*iw+j-1]);

intred5=cm.getRed(pixels[i*iw+j]);

intred6=cm.getRed(pixels[i*iw+j+1]);

//intred8=cm.getRed(pixels[(i+1)*iw+j]);

//水平方向进行中值滤波

if(red4>=red5){

if(red5>=red6){

red=red5;

}else{

if(red4>=red6){

red=red6;

}else{

red=red4;

}

}

}else{

if(red4>red6){

red=red4;

}else{

if(red5>red6){

red=red6;

}else{

red=red5;

}

}

}

intgreen4=cm.getGreen(pixels[i*iw+j-1]);

intgreen5=cm.getGreen(pixels[i*iw+j]);

intgreen6=cm.getGreen(pixels[i*iw+j+1]);

//水平方向进行中值滤波

if(green4>=green5){

if(green5>=green6){

green=green5;

}else{

if(green4>=green6){

green=green6;

}else{

green=green4;

}

}

}else{

if(green4>green6){

green=green4;

}else{

if(green5>green6){

green=green6;

}else{

green=green5;

}

}

}

//intblue2=cm.getBlue(pixels[(i-1)*iw+j]);

intblue4=cm.getBlue(pixels[i*iw+j-1]);

intblue5=cm.getBlue(pixels[i*iw+j]);

intblue6=cm.getBlue(pixels[i*iw+j+1]);

//intblue8=cm.getBlue(pixels[(i+1)*iw+j]);

//水平方向进行中值滤波

if(blue4>=blue5){

if(blue5>=blue6){

blue=blue5;

}else{

if(blue4>=blue6){

blue=blue6;

}else{

blue=blue4;

}

}

}else{

if(blue4>blue6){

blue=blue4;

}else{

if(blue5>blue6){

blue=blue6;

}else{

blue=blue5;

}

}

}

pixels[i*iw+j]=alpha<

|blue;

}

}

//将数组中的象素产生一个图像

ImagetempImg=Toolkit.getDefaultToolkit().createImage(

newMemoryImageSource(iw,ih,pixels,0,iw));

image=newBufferedImage(tempImg.getWidth(null),

tempImg.getHeight(null),BufferedImage.TYPE_INT_BGR);

image.createGraphics().drawImage(tempImg,0,0,null);

returnimage;

}

publicBufferedImagegetGrey(){

ColorConvertOpccp=newColorConvertOp(

ColorSpace.getInstance(ColorSpace.CS_GRAY),null);

returnimage=ccp.filter(image,null);

}

//Brightenusingalinearformulathatincreasesallcolorvalues

publicBufferedImagegetBrighten(){

RescaleOprop=newRescaleOp(1.25f,0,null);

returnimage=rop.filter(image,null);

}

//Blurby"convolving"theimagewithamatrix

publicBufferedImagegetBlur(){

float[]data={.1111f,.1111f,.1111f,.1111f,.1111f,.1111f,

.1111f,.1111f,.1111f,};

ConvolveOpcop=newConvolveOp(newKernel(3,3,data));

returnimage=cop.filter(image,null);

}

//Sharpenbyusingadifferentmatrix

publicBufferedImagegetSharpen(){

float[]data={0.0f,-0.75f,0.0f,-0.75f,4.0f,-0.75f,0.0f,

-0.75f,0.0f};

ConvolveOpcop=newConvolveOp(newKernel(3,3,data));

returnimage=cop.filter(image,null);

}

//11)Rotatetheimage180degreesaboutitscenterpoint

publicBufferedImagegetRotate(){

AffineTransformOpatop=newAffineTransformOp(

AffineTransform.getRotateInstance(Math.PI,

image.getWidth()/2,image.getHeight()/2),

AffineTransformOp.TYPE_NEAREST_NEIGHBOR);

returnimage=atop.filter(image,null);

}

publicBufferedImagegetProcessedImg(){

returnimage;

}

publicstaticvoidmain(String[]args)throwsIOException{

StringfilePath="F:/k7qp5.png";

FileInputStreamfin=newFileInputStream(filePath);

BufferedImagebi=ImageIO.read(fin);

ImageInitflt=newImageInit(bi);

flt.changeGrey();

flt.getGrey();

flt.getBrighten();

bi=flt.getProcessedImg();

Stringpname=filePath.substring(0,filePath.lastIndexOf("."));

Filefile=newFile(pname+".jpg");

ImageIO.write(bi,"jpg",file);

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。