当前位置: 首页 > news >正文

北京旅游外贸网站建设手机制作手书app软件

北京旅游外贸网站建设,手机制作手书app软件,网站权重是什么意思,国内知名的网站建设企业最近几天在做一个项目#xff0c;因为涉及到了图片(绝大部分都不是整图#xff0c;是把一张张的大图切成小图#xff0c;也就是Title)的翻转以及90旋转#xff0c;弄得焦头烂额。在网上搜索好几天#xff0c;发现用到的方法都是比较公式化的#xff0c;对于只是在绘图的时…最近几天在做一个项目因为涉及到了图片(绝大部分都不是整图是把一张张的大图切成小图也就是Title)的翻转以及90°旋转弄得焦头烂额。在网上搜索好几天发现用到的方法都是比较公式化的对于只是在绘图的时候需要显示翻转而不需要另外生成图片的情况这些代码用起来非常的麻烦。最后仔细的研究了一下JDK文档用Graphics2D很简单的就实现了以下功能1、图片的翻转包括水平翻转以及垂直翻转2、图片的任意角度旋转。因为工程需要代码里面都直接写成了90根据需要可以对这个值进行改动以符合需求。3、可以使用组合操作比如水平翻转旋转或者垂直水平旋转任意。以下是代码:package Demo628;import java.awt.*;import java.awt.event.*;import java.util.*;import javax.swing.*;public class ImageRote{public static void main(String[] args){JFrame frame new TransformFrame();frame.setVisible(true);}}class TransformFrame extends JFrame implements ActionListener{//添加几个按钮方便操作。JButton rote new JButton(旋转) ;JButton flipX new JButton(水平翻转);JButton flipY new JButton(垂直翻转);JButton zoomIn new JButton(放大) ;JButton zoomOut new JButton(缩小) ;public TransformFrame(){setTitle(TransformTest);setSize(400, 400);addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});Container contentPane getContentPane();canvas new TransPanel();contentPane.add(canvas, Center);JPanel buttonPanel new JPanel();buttonPanel.add(rote);rote.addActionListener(this);buttonPanel.add(flipX);flipX.addActionListener(this);buttonPanel.add(flipY);flipY.addActionListener(this);buttonPanel.add(zoomIn) ;zoomIn.addActionListener(this) ;buttonPanel.add(zoomOut) ;zoomOut.addActionListener(this) ;contentPane.add(buttonPanel, North);}public void actionPerformed(ActionEvent event){Object source event.getSource();//对于source ???这种方法在特殊的情况下出现错误所以需要酌情使用event.getSource().equals()方法来替代if (source rote){canvas.setRotate();} elseif (source flipX){canvas.flipX();} elseif (source flipY){canvas.flipY();} elseif (source zoomIn){canvas.zoomIn();} elseif (source zoomOut){canvas.zoomOut();}}private TransPanel canvas;}class TransPanel extends JPanel{//水平翻转比例的标志。-1表示需要进行水平翻转int m_nFlipXScale 1 ;//垂直翻转比例的标志。-1表示需要进行垂直翻转int m_nFlipYScale 1 ;//旋转的角度。因为工程需要代码中直接写成了90可以根据具体需要动态修改以符合实际情况int roteAngle 0 ;//缩放比例。默认的比例0表示没有翻转具体的翻转大小通过一个方法:getZoomSize()获取int zoomLevel 0 ;public TransPanel(){//首先载入一张图片。img new ImageIcon(D000.GIF).getImage();}public void paintComponent(Graphics g){super.paintComponent(g);g.drawImage(img,0,0,this) ;drawTransImage(g,img.getWidth(this),img.getHeight(this),zoomLevel) ;}public void drawTransImage(Graphics g,int drawx,int drawy,int zoom){int x 0 ;int y 0 ;int w img.getWidth(this) ;int h img.getHeight(this) ;int zoomw getZoomSize(w,zoom) ;int zoomh getZoomSize(h,zoom) ;int xPos 0 ;int yPos 0 ;if (m_nFlipXScale -1)xPos -zoomw ;if (m_nFlipYScale -1)yPos -zoomh ;Graphics2D g2 (Graphics2D)g ;//转换坐标原点。这步不要也成但是将当前位置转换为坐标原点后可以节省好多计算步骤非常好用。//不过记得用完了以后一定要把原点转换回来要不然其他地方就乱了g2.translate(drawx,drawy);if (roteAngle ! 0)g2.rotate(Math.toRadians(m_nFlipXScale * m_nFlipYScale * roteAngle),zoomw 1,zoomh 1);//上面的m_nFlipXScale * m_nFlipYScale需要特殊说明一下因为实际使用中可能遇到各种组合的情况比如//先flipX或者flipY以后然后再旋转这时候图片的旋转方向就会出现错误加上这段代码可以保证无论使用哪种组合//操作方式都保证在旋转图片的时候是按照顺时针的方向进行旋转。if (m_nFlipXScale -1)g2.scale(-1,1);//第一个值表示水平-1表示等宽水平翻转Math.abs(m_nFlipXScale)的值越大出来的图片就越宽if (m_nFlipYScale -1)g2.scale(1,-1);//第二个值表示垂直-1表示等高垂直翻转Math.abs(m_nFlipYScale)的值越大出来的图片就越高//显示图片g2.drawImage(img,xPos,yPos,xPos zoomw,yPos zoomh,x,y,w,h,null) ;g2.translate(-drawx,-drawy);}public void setRotate(){roteAngle 90 ;roteAngle % 360 ;repaint();}public void flipX(){m_nFlipXScale -m_nFlipXScale ;repaint();}public void flipY(){m_nFlipYScale -m_nFlipYScale ;repaint();}public void zoomIn(){zoomLevel ;repaint();}public void zoomOut(){zoomLevel-- ;repaint();}public static final int getZoomSize(int sourceSize,int zoomLevel){if (zoomLevel 0)return sourceSize ;elseif (zoomLevel 0)return sourceSize / (Math.abs(zoomLevel) 1) ;elsereturn sourceSize * (zoomLevel 1) ;}private Image img;}以上就是本文的全部内容希望对大家的学习有所帮助也希望大家多多支持脚本之家。
http://www.zqtcl.cn/news/557538/

相关文章:

  • 金融互助网站开发网上免费设计效果图
  • 网站开发 例子施工企业质量管理体系应按照我国
  • 义乌建设网站网络营销推广有哪些方法
  • 宿迁建设局网站a类证查询怎么自己搭建梯子
  • 成都网站品牌设计策划网络推广如何收费
  • html5 js全屏滑动网站源码wordpress 插件 破解
  • 做电影网站怎么批量去水印微信用什么小程序可以提取文字
  • 网站开发费用周期域名网站建设方案书模板
  • 织梦网站问题关于政务网站建设工作情况的总结
  • wordpress 拿站网站搭建后如何使用
  • 网站设计应遵循的原则wordpress免费空间
  • 建设网站的特色企业内部培训app软件
  • jsp网站缓存在哪wordpress设置静态页面
  • 百度做网站电话多少东台网页定制
  • 暖通设计网站推荐百度在西安的公司叫什么
  • 天津响应式网站设计网站建设的任务
  • 多语言网站 自助江门建设局网站
  • 宜兴做阿里巴巴网站常州外贸网站设计
  • 长沙米拓建站wordpress最底部版权
  • 小企业网站建设费用一年wordpress 怎么登陆
  • 阿里云建站可不可以备案wordpress评论滑动插件
  • 网站建设教程出售用苏州久远网络现在的网络营销方式
  • 浮动播放器wordpress刷神马seo排名首页排名
  • 建设网站呼叫中心有什么好处站长统计免费下载
  • 做网站电脑配置要求个高吗电子商务网站的建设包含哪些流程图
  • 青岛做网站大公司wordpress文章页加一言
  • 用哪个网站做相册视频文件夹谷歌ads
  • 注册top域名做公司网站男女做暖网站是什么
  • 郴州本地网站建设高端网站设计多少钱
  • 此网站域名即将过期广告制作属于什么行业