A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

核心代码如下:
旋转操作  每按一次旋转90度
        void xuanzhuan_actionPerformed(ActionEvent e){
            try {
                        Image ia =ic.getImage();
                        int width = ia.getWidth(this);
                        int height = ia.getHeight(this);
                        int pixels[] = new int [width * height];
                        PixelGrabber pg = new PixelGrabber(ia, 0, 0, width, height, pixels, 0, width);
                        if (pg.grabPixels() && ((pg.status()& ImageObserver.ALLBITS) !=0)) {
                                image1 = createImage(new MemoryImageSource(height,width,  rowFlipPixels(rot90Pixels(pixels, width, height), width, height), 0,height));
                        }
                } catch (InterruptedException e1) {
                        e1.printStackTrace();
                }
                ImageIcon   ica = new ImageIcon(image1);  
        label.setIcon(ica);   
        repaint();     
}
        private int[] rowFlipPixels(int pixels[], int width, int height) {
                 int newPixels[] = null;
                    if ((width * height) == pixels.length) {
                      newPixels = new int[width * height];
                      int newIndex = 0;
                      for (int y = height - 1; y >= 0; y--)
                        for (int x = width - 1; x >= 0; x--)
                          newPixels[newIndex++] = pixels[y * width + x];
                    }
                    return newPixels;
        }
        private int[] rot90Pixels(int pixels[], int width, int height) {
                int newPixels[] = null;
                if ((width * height) == pixels.length) {
                      newPixels = new int[width * height];
                      int newIndex = 0;
                      for (int x = width - 1; x >= 0; x--)
                        for (int y = 0; y < height; y++)
                          newPixels[newIndex++] = pixels[y * width + x];
                    }
                return newPixels;
        }
       

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 很给力!

查看全部评分

4 个回复

正序浏览
问题都这么高深呢
回复 使用道具 举报
没看代码,我觉得你可以写一个旋转180的方法,在这个方法里面,写一个for循环,调用旋转90度两次。270度就调用三次
回复 使用道具 举报
还可以加水印呢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马