
正文
实现图像反转java代码 实现图像反转java代码
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
请问如何用java实现图像格式转换,将H.263转换成BMP格式
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;
public class ImageFormat {
public static void main(String[] args) {
File file = new File("c:\\test.jpg");
changFormat(file, "png", new File("c:\\test.png"));// 转为png
changFormat(file, "bmp", new File("c:\\test.bmp"));// 转为bmp
//changFormat(file, "jpeg", new File("c:\\test.jpg"));// 转为jpg
changFormat(file, "gif", new File("c:\\test.gif"));// 转为gif
}
//第一个参数 原图的File对象 第二个参数 目标格式 第三个参数 输出图像的File对象
public static void changFormat(File srcFile, String format, File formatFile) {
try {
BufferedImage srcImg = ImageIO.read(srcFile);// 读取原图
ImageIO.write(srcImg, format, formatFile);// 用指定格式输出到指定文件
} catch (IOException e) {
e.printStackTrace();
}
}
}
相关问答
Q1: java 怎么让一个图形绕一个点旋转360度
import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
/**
* @author ZhengYesheng
*/
public class RotateImageCanvas extends Canvas implements Runnable
{
private static final long serialVersionUID = -1997487731464495923L;
BufferedImage img;
BufferedImage rotatedImg;
int degress = 0;
public RotateImageCanvas(BufferedImage img)
{
super();
this.img = img;
new Thread(this).start();
}
@Override
public void run()
{
while (true)
{
//A,与B的代码配合决定旋转的速度
degress += 1;
degress %= 360;
repaint();
try
{
if (degress == 0)
{
//绕一周后等待的时间在这里设置
Thread.sleep(3 * 1000);
}
else
{
//考虑到视觉平滑,这里不应大约40。
Thread.sleep(30);
}
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
@Override
public void paint(Graphics graphics)
{
super.paint(graphics);
//获取旋转指定角度后的图片。为了避免累计误差,这里是用原始图像旋转的
rotatedImg = rotateImage(img, degress);
//绘制旋转后的图片
graphics.drawImage(rotatedImg, 0, 0, this);
}
/**
* 旋转图片为指定角度。
* 注意:1、这个方法实现了图像的基于中点的旋转,要想绕指定点,需要配合Matrix类
* 2、为避免图像被裁切,结果图片的尺寸也需要动态计算
* 3、现在旋转后有黑色背景,如果不需要这个效果,需要设置结果图片的Alpha模式
*
* @param bufferedimage
* 目标图像
* @param degree
* 旋转角度
* @return
*/
private BufferedImage rotateImage(BufferedImage bufferedimage, int degree)
{
int w = bufferedimage.getWidth();
int h = bufferedimage.getHeight();
int type = bufferedimage.getColorModel().getTransparency();
BufferedImage img;
Graphics2D graphics2d;
(graphics2d = (img = new BufferedImage(w, h, type)).createGraphics())
.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2d.rotate(Math.toRadians(degree), w / 2, h / 2);
graphics2d.drawImage(bufferedimage, 0, 0, null);
graphics2d.dispose();
return img;
}
}
Q2: 利用java实现图片翻转的代码
重载渲染控件实现图像反转java代码的paintComponent(Graphics
g)方法.
设实现图像反转java代码你当前图像实例为img,已初始化,需要旋转的角度为ang
public
void
paintComponent(Graphics
g){
super.paintCompoent(g);
Graphics2D
g2d
=
(Graphics2D)g;
g2d.rotate(-angle);
g2d.drawImage(img,0,0,this.getWidth(),this.getHeight(),null);
}
Graphics,Graphics2D
类中有对当前描绘环境进行仿射变换的方法,包括translate,scale,rotate,也可以直接设置仿射变换矩阵,利用这点就可以根据所需要的实现方式来进行描绘.
Q3: Java怎么让我的图片反转。我已经设置好按钮和监听器了。但是不会反转,只要九十度就可以了
/**
* 旋转图像为指定角度
*
* @param degree
* @return
*/
public static BufferedImage rotateImage(final Image image,
final int angdeg, final boolean d) {
int w = image.getWidth(null);
int h = image.getHeight(null);
BufferedImage img;
Graphics2D graphics2d;
(graphics2d = (img = createImage(w, h, true))
.createGraphics()).setRenderingHint(
RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2d.rotate(d ? -Math.toRadians(angdeg) : Math.toRadians(angdeg),
w / 2, h / 2);
graphics2d.drawImage(image, 0, 0, null);
graphics2d.dispose();
return img;
}
g.drawImage(rotateImage(image,90,true), 371, 56, 122, 223, null);
实现图像反转java代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于实现图像反转java代码、实现图像反转java代码的信息别忘了在本站进行查找喔。






