java图像旋转顺时针90度的问题
类Graphics2D的方法rotate(double theta, double x,
double y)可以用来旋转图片
第一步、桌面空白处右键单击,选中“屏幕分辨率”选项。
第二步、 在“屏幕分辨率”窗口中,选定“方向”标签,选择“横向(翻转)”。当然,你也可以根据你的习惯,调整方向。然后,你再点击“应用”最后“确定”,就可以了。
详见:http://jingyan.baidu.com/article/455a99508b97cda166277895.html
import javax.swing.*;
import javax.imageio.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.geom.*;
import java.io.*;
/**
* @author Hardneedl
*/
class ImageTransform extends JFrame {
private static final Dimension minSize = new Dimension(900, 800);
private static final Dimension maxSize = new Dimension(900, 800);
private static final Dimension preferredSize = new Dimension(900, 800);
public Dimension getMaximumSize() {return maxSize;}
public Dimension getMinimumSize() {return minSize;}
public Dimension getPreferredSize() {return preferredSize;}
public String getTitle() {return "Frame Title";}
private class Canvas extends JComponent{
private BufferedImage img;
private AffineTransform trans=new AffineTransform();
private void setImage(BufferedImage img){
if(img!=null) this.img = img;
if(isVisible()) paintImmediately(0,0,getWidth(),getHeight());
}
private void setRota(double rota){
trans.setToRotation(rota, (getWidth())>>1, ( getHeight() )>>1 );
if(isVisible()) paintImmediately(0,0,getWidth(),getHeight());
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLUE);
g.fillRect(0,0,getWidth(),getHeight());
if (img==null)return;
Graphics2D gg= (Graphics2D)g.create();
int iw = img.getWidth(), ih = img.getHeight();
int anchorX = (getWidth()- iw)>>1, anchorY = (getHeight() - ih)>>1;
AffineTransform af = gg.getTransform();
af.translate(anchorX, anchorY);
af.concatenate(trans);
gg.drawImage(img,af,this);
gg.dispose();
}
}
private Canvas canvas = new Canvas();
ImageTransform() throws HeadlessException {
init();
doLay();
attachListeners();
}
private void init() {
try {
canvas.setImage(ImageIO.read(new File("1.png")));
canvas.setRota(Math.PI/3);
} catch (IOException e) {
e.printStackTrace();
}
}
private void doLay() {
Container container = getContentPane();
container.add(canvas,BorderLayout.CENTER);
pack();
}
private void attachListeners() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) throws IOException {
new ImageTransform().setVisible(true);
}
}
这个问题我以前遇到过,我是模仿windows中的图片查看器写的,具体怎么样我也不清楚了,你要的话给我留言,并注明要什么,我是开源的,呵呵
AK47的资料?
1944年,卡拉什尼科夫设计了一种发射7.62×39毫米М1943式中间型威力枪弹的半自动卡宾枪,采用导气式自动原理,活塞和活塞杆固定在一起,但与机枪框并不相连,弹匣容量10发,导气管位于枪管上方,这种枪采用枪机回转式闭锁,顺时针方向旋转的闭锁机头上有两个大的对称闭锁突笋。这种闭锁方式是直接参考美国M1式加兰德步枪的。不...
电脑里默认的那个图片浏览器叫什么?
电脑默认的图片浏览器是 Windows照片查看器 Windows图片和传真查看器是集成在Windows操作系统中的一个看图软件,它是我们常用的图片浏览工具。在未安装其他图片浏览软件之前,系统将默认用它来浏览图片。Windows图片和传真查看器只能对传真文件和TIF格式的图片文件添加批注。参考网址:http:\/\/baike.baidu.com\/...
为什么photoshop中ctrl中加t无法旋转图片得到另一半
ctrl+t后,鼠标放到接点上就会出现旋转的标志用鼠标去旋转。用键盘好像不行!~同时按住shif是带角度旋转!如果说你想变化旋转到一定的角度的话,在菜单栏里图像--图像旋转里面可以有任意角度变换。同时还有180 顺时旋转90和逆时旋转90 水平翻转,和垂直反转!如果安住shift+ctrl+t就可以以图片中心为基点...
AK是什么?
1944年,卡拉什尼科夫设计了一种发射7.62×39毫米М1943式中间型威力枪弹的半自动卡宾枪,采用导气式自动原理,活塞和活塞杆固定在一起,但与机枪框并不相连,弹匣容量10发,导气管位于枪管上方,这种枪采用枪机回转式闭锁,顺时针方向旋转的闭锁机头上有两个大的对称闭锁突笋。这种闭锁方式是直接参考美国M1式加兰德步枪的。不...
八年级物理试卷
25.在“用电压表、电流表测电阻”的实验中,某一次测量时,小华同学观察到接在待测电阻两端电压表的示数如图 14 所示,则电阻两端的电压为 伏。若此时电流表 示数为 0.22 安,则电阻的阻值为 欧。 26.在图 15 所示的电路中,闭合电键 S 灯 L 不亮,电压表 V 有示数。已知电路中各 处均接触良好,除灯 L 和...
佛窦复方: 翻转后 orientation 属性为6 . public static void main(String[] args) throws ImageProcessingException, IOException {File jpegFile= new File("C:\\Users\\Administrator\\Desktop\\IMG_0362.JPG"); Metadata metadata = ImageMetadataReader....
船营区13412942253: 用Java ,如何使一张图片(可能是jpg,也可能png 格式)向左或向右旋转90°? - ?
佛窦复方: 使用BudderedImage,把画板旋转90度,再绘上去.....
船营区13412942253: 基于java怎么解决ios手机上传竖拍照片旋转90度问题 - ?
佛窦复方: 可以从QQ添加,打开qq,有个好友动态,点击进入后点写说说,可以添加照片的
船营区13412942253: 函数f(x)的图像 绕原点 顺时针旋转90度 那这个函数怎么表达??? - ?
佛窦复方: 注意1:逆时针变换是旋转变换的正方向. 注意2:y=f(x)的图像旋转任意角度后可能会有图像损失或者不能确定图像是哪一部分,比如y=x^2顺时针旋转90°可以这样推导: y=f(x)上的任意并代表其上所有的点的点:(x,y) 用参数方程将其表示出来:...
船营区13412942253: 整个屏幕的图像顺时针旋转了90°,要怎样调回来. - ?
佛窦复方: 第一步、桌面空白处右键单击,选中“屏幕分辨率”选项.第二步、 在“屏幕分辨率”窗口中,选定“方向”标签,选择“横向(翻转)”.当然,你也可以根据你的习惯,...
船营区13412942253: 将一次函数y=kx+b的图像顺时针旋转90度后图像的解析式是什么? - ?
佛窦复方:[答案] 此题应该是绕直线上某点顺时针旋转90度(需要说明的是逆时针旋转90度的结果一样)假设绕点P(m,n)(P在直线y=kx+b上) 旋转90度后,得到的直线的斜率(相当于y=kx+b的k)为:-1/k (因为两直线垂直,斜率的乘积等于-1...
船营区13412942253: 问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋90度.,谢了 - ?
佛窦复方: 因为题目说的是逆时针旋转,所以旋转后的第一行对应的原来的最后一列,所以应该是里面的for循环逻辑错了,应该改成 for(j=n-1;j>=0;j--)printf("%d ", a[j][i]);
船营区13412942253: delphi中如何实现图片的缩放和旋转90度? - ?
佛窦复方: 去下Graphic32控件.Delphi自带的控件无法实现旋转.
船营区13412942253: 将图形A绕O点顺时针旋转90度得到图形B,再将图形B向东平移3格得到图形C. - ?
佛窦复方:[答案] 根据分析作图如下:
船营区13412942253: 将一次函数y=kx+b的图像顺时针旋转90度后图像的解析式是什么? - ?
佛窦复方: 此题应该是绕直线上某点顺时针旋转90度(需要说明的是逆时针旋转90度的结果一样) 假设绕点P(m,n)(P在直线y=kx+b上) 旋转90度后,得到的直线的斜率(相当于y=kx+b的k)为:-1/k (因为两直线垂直,斜率的乘积等于-1),故:新直线的解析式为:y-n=-1/k(x-m) 又P(m,n)在直线y=kx+b上,故:n=km+b 故:y- km-b =-1/k(x-m) 故:y=-x/k+m/k+km+b