当前位置:  技术问答>java相关

如何改变图片大小?很紧急,希望大家能帮忙!!!

    来源: 互联网  发布时间:2015-05-11

    本文导语:  就像photoshop中缩小功能一样,将1280*1024的图片改成800*600! | 测试成功。 添加包: import com.sun.image.codec.jpeg.*; import java.awt.image.BufferedImage; import java.awt.image.Kernel; import java.awt.image.BufferedImageOp;...

就像photoshop中缩小功能一样,将1280*1024的图片改成800*600!

|
测试成功。
添加包:
import com.sun.image.codec.jpeg.*;
import java.awt.image.BufferedImage;
import java.awt.image.Kernel;
import java.awt.image.BufferedImageOp;
import java.awt.image.*;
添加类成员:
private InputStream   inputStream;
private ByteArrayOutputStream bout;
private BufferedImage bufferedImage;


ImageIcon mi = new ImageIcon("E:\samples\java\SailiTest\T18Big.gif");
this.saveImage(mi.getImage(),"e:\2.jpg");//存成800*600的图像

//转换方法
public void saveImage(Image pImage,String ofileDirAndName)
{
  BufferedImage  bimg  =  null;
  int  w  =  pImage.getWidth(null);
  int  h  =  pImage.getHeight(null);
  int  []  pixels  =  new  int[w  *  h];
  PixelGrabber pg = new PixelGrabber(pImage,0, 0, w, h,pixels, 0, w);
  try {
   pg.grabPixels();
  }
  catch(InterruptedException e) {
  e.printStackTrace();
   }
   this.bout= new ByteArrayOutputStream();System.out.println("3");
   System.out.println("图像宽高:" +w+":"+h );
   BufferedImage bufferedImage= new BufferedImage(800,600,BufferedImage.TYPE_INT_RGB);

   bufferedImage.setRGB(0,0,800,600,pixels,0,w);
   float[] sharpKernel = { 0.0f, -1.0f, 0.0f,-1.0f, 5.0f, -1.0f, 0.0f, -1.0f, 0.0f };System.out.println("5");
   BufferedImageOp sharpen= new ConvolveOp( new Kernel(3, 3, sharpKernel), ConvolveOp.EDGE_NO_OP, null);
   BufferedImage sharp= sharpen.filter( bufferedImage, null );
   try
   {
    JPEGEncodeParam jpegParam= JPEGCodec.getDefaultJPEGEncodeParam( sharp );
    jpegParam.setQuality( 1.0f, false );
    JPEGImageEncoder jpeg= JPEGCodec.createJPEGEncoder( bout, jpegParam );
     jpeg.encode( bufferedImage );
     this.bout.writeTo(new FileOutputStream(ofileDirAndName));
  }
  catch(Exception ee)
  {
System.err.println("出错了"+ee);
   }
}

    
 
 

您可能感兴趣的文章:

  • C++ Lists(链表) 成员 resize():改变list的大小
  • 如何控制Frame中的组件大小,当用鼠标拖动改变frame大小时
  • C++ Vectors 成员 resize():改变Vector元素数量的大小
  • Jqgrid表格随窗口大小改变而改变的简单实例
  • C++ Double Ended Queues(双向队列) 成员 resize():改变双向队列的大小
  • 不解决也给分。我的红帽子7.3版的窗口不能改变大小了。
  • 如何改变标签中文字的大小?
  • Web服务器/前端 iis7站长之家
  • 如何改变java applet窗体大小?
  • 怎么改变鼠标图像的大小,请教
  • 请问在gtk中怎么改变控件大小?
  • 怎样使用UIManager.put改变组件的默认大小?
  • 如何改变applet窗口大小????????
  • 请问能在浏览器调入APPLET后,在APPLET内部改变其自身的大小嘛?
  • 如何改变菜单的字体的大小?
  • 高分求救:Linux下如何改变Ramdisk大小!急!!在线等待!!!
  • gtk编程如何改变创建窗口的大小?
  • Virtual PC如何改变窗口大小?
  • fdisk如何改变扩展分区的大小!!高分送高手~~~~~~~~~
  • 如果防止JDialog被改变大小
  • linux分区的大小是否可以改变
  • 如何改变普通用户的权限??请帮忙!!
  • tomcat问题:servlet在编译过后页面根本无改变,必须重启才能刷新内容,我就这么多分,请帮忙!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 网站改版后导致URL改变如何设置301跳转的几种方法
  • linux 中chgrp是改变文件群组的,那么文件拥有者的群组会不会一起改变
  • 将要改变IT世界的的docker技术是什么?
  • 如何用shell改变一个目录下的指定文件后缀名.如:从*.TXT改变成*.txt(包括子目录)
  • LINUX下如何随系统改变字体
  • 外设硬件的物理端口地址在连接好后能否再改变
  • 在FreeBSD中如何永久改变网卡的mac地址?
  • 怎么改变用户的主目录
  • awk能改变变量的值么?
  • close 一个文件描述符会不会改变其值?
  • 有没有方法在程序里改变shell的工作目录呢?
  • 如何编写Makefile,使得只编译改变的文件
  • 怎样改变对象Integer的值?
  • hostname改变主机名
  • 请教高手,JtextPane可不可以按行改变颜色
  • 用shell命令来实现改变文件的icon
  • 请教如何改变GTK程序界面使用的默认字体??
  • 防火墙级别设置无法改变
  • 如何改变PATH环境变量?
  • 用root登陆还是不能改变任何文件的属性
  • bash shell ssh 登录后改变标题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3