特效 Java Swing Graphics 获取组件图片 图片旋转

下面为所做动画的部分代码,记录以防忘记//截取组件自身图片BufferedImage controlImage = new BufferedImage(bgLayered.getWidth(), bgLayered.getHeight(),BufferedImage.TYPE_INT_ARGB);panel.paint(controlImage.getGraphics());//绘制public void paint(Graphics g) { Graphics2D g2d = (Graphics2D)g.create(); //旋转进场,从无到有,从90度的到正常的 if(rotate){//得到逆转90的图片g2d.translate(-rotateImage.getWidth(), this.getHeight()-rotateImage.getHeight());//平移至指标g2d.rotate(theta,rotateImage.getWidth(),rotateImage.getHeight());g2d.drawImage(rotateImage,0,0, this); }else if(rotateFlgExit){ //退场g2d.rotate(theta,0,rotateImage.getHeight());g2d.drawImage(rotateImage,0,0, null); }else if(scaleRotateFlg){ //绕中心旋转 g2d.translate(this.getWidth()/2, this.getHeight()/2);g2d.rotate(theta);g2d.scale(scale,scale);g2d.drawImage(rotateImage,-this.getWidth()/2, -this.getHeight()/2,null); } else{ super.paint(g); } }//把图片左旋90度对应的方法 public BufferedImage rotate90SX(BufferedImage bi){ int width = bi.getWidth(); int height = bi.getHeight(); BufferedImage biFlip = new BufferedImage(height, width, bi.getType()); for(int i=0; i<width; i++) for(int j=0; j<height; j++) biFlip.setRGB(j, width-1-i, bi.getRGB(i, j)); return biFlip;}

猜你喜欢

转载自blog.csdn.net/u014165193/article/details/42425303
今日推荐