旋转图象有很多方法。
1.自己写代码,一个象素一个象素地旋转。
2.利用现成的类。如AffineTransform
3.利用Rotation方法也可以。
1.自己写代码,一个象素一个象素地旋转。
2.利用现成的类。如AffineTransform
3.利用Rotation方法也可以。
解决方案 »
- Excel的API,下载之后如何使用?
- jtable 加入自定义的控件 的键盘响应事件 问题
- swt-designer里面的DragSource,DropTarget能否拖拽按钮?
- 如何如此实现“动态”访问EJB构件?(详情见内)
- 用java调用url接口的问题。
- 急问高手:关于字符串的数据类型转换!!!
- 请教一个VisualAge for java 4.0 企业版的安装问题
- 请解释一下一个很简单的问题:System.out.println(".......");……
- 请问WebLogic6.0中Connection Pools怎么配置?
- 新手请教打球得分的java问题!
- 我在读pdf文件时不能读碰到这样一个问题:有谁碰到过这样的问题吗?
- 关于JBuilder的使用~~
tr.rotate(Math.PI/4,img.getWidth(this)/2,img.getHeight(this)/2);
tr.translate(300,300);
g.drawImage(img, tr, this);
利用矩阵的旋转,也可以。
具体代码没有,但可以提供想素的操作代码(下面代码改变透明度)。import java.awt.*;
import java.applet.*;
import java.awt.geom.*;
import java.awt.font.*;
import java.awt.image.*;
import java.net.URL;
import javax.swing.*;
public class AlphaCarton extends JFrame
{
public AlphaCarton()
{
setTitle("渐隐效果");
setSize(200,200);
Pic pp=new Pic();
getContentPane().add(pp,BorderLayout.CENTER);
show();
Thread carton=new Thread(pp);
carton.start();
}
public static void main(String[] args)
{
new AlphaCarton();
}
}
class Pic extends JLabel implements Runnable
{
private BufferedImage buff;
private BufferedImage outBuff;
private int width;
private int height;
private int change;
private boolean b=false;
public Pic()
{
Toolkit kit=getToolkit();
Image img = kit.createImage("jj.jpg");
MediaTracker tracker = new MediaTracker(this);
try
{
tracker.addImage(img, 0);
tracker.waitForAll();
}
catch (Exception e)
{
e.printStackTrace();
} width = img.getWidth(this);
height = img.getHeight(this); buff = new BufferedImage(width,height, BufferedImage.TYPE_INT_ARGB);
Graphics tempGr = buff.createGraphics();
tempGr.drawImage(img, 0, 0, this); outBuff = new BufferedImage(width,height, BufferedImage.TYPE_INT_ARGB);
}
public void paint(Graphics g)
{
Graphics2D newG = (Graphics2D) g;
//change=200;
FadeImage(buff, outBuff,change);
newG.drawImage(outBuff, 0, 0, this);
} public void run()
{
while(true)
{
if(!b)
{
change+=5;
if(change>=255)
{
change=255;
b=true;
}
}
else
{
change-=5;
if(change<=0)
{
change=0;
b=false;
}
}
repaint();
try
{
Thread.currentThread().sleep(100);
}
catch(Exception e)
{
System.out.println("Thread Error");
}
}
} public void FadeImage(BufferedImage srcImage, BufferedImage destImage,int scale)
{
int width = srcImage.getWidth();
int height = srcImage.getHeight();
int alpha=0; int oldpix = 0;
int newpix = 0;
int ired;
int igreen;
int iblue; for (int i=0; i < height; i++)
{
for (int j=0; j < width; j++)
{ oldpix = srcImage.getRGB(j, i);
alpha=(oldpix>>24)&255;
ired=(oldpix>>16)&255;
igreen=(oldpix>>8)&255;
iblue=oldpix&255; alpha=alpha-scale;
if (alpha<0)
{
alpha=0;
}
newpix=(alpha<<24)+(ired<<16)+(igreen<<8)+iblue;
destImage.setRGB(j, i, newpix);
}
}
}
}