⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 图片翻转函数.txt

📁 收集到的一些J2ME资料。。 包括图片的角度翻转。。A*算法和一些其他文章
💻 TXT
字号:
旋转:
NOKIA有DirectGraphics可以实现。
midp1.0:
import   javax.microedition.lcdui.*;

public   class   Displayable1
        extends   Canvas   {
    public   Displayable1()   {
        try   {
            img   =   Image.createImage("/a.png");
        }
        catch   (Exception   e)   {}
    }

    Image   img;

    protected   void   paint(Graphics   g)   {
        Image   temp;
        g.drawImage(img,   0,   0,   0);   //原始图片
        temp   =   rotate90Image(img);
        g.drawImage(temp,   70,   10,   0);
        temp   =   rotate180Image(img);
        g.drawImage(temp,   70,   40,   0);
        temp   =   rotate270Image(img);
        g.drawImage(temp,   40,   40,   0);
        temp   =   flipVerticalImage(img);
        g.drawImage(temp,   25,   0,   0);
        temp   =   flipHorizontalImage(img);
        g.drawImage(temp,   0,   40,   0);
        //flipVerticalDraw(img,   g,   25,   0);   //水平镜像
        //flipHorizontalDraw(img,   g,   0,   40);   //垂直镜像
        //rotate90Draw(img,   g,   70,   10);   //原始图片的90度的旋转
        //rotate180Draw(img,   g,   70,   40);   //原始图片的180度的旋转
        //rotate270Draw(img,   g,   40,   40);   //原始图片的270度的旋转
    }

    //图像   90   度   翻转
    public   Image   rotate90Image(Image   original)   {
        Image   copy;
        copy   =   Image.createImage(original.getHeight(),   original.getWidth());
        Graphics   g   =   copy.getGraphics();
        rotate90Draw(original,   g,   0,   0);
        return   Image.createImage(copy);
    }

    public   Image   rotate180Image(Image   original)   {
        Image   copy;
        copy   =   Image.createImage(original.getWidth(),   original.getHeight());
        Graphics   g   =   copy.getGraphics();
        rotate180Draw(original,   g,   0,   0);
        return   Image.createImage(copy);
    }

    public   Image   rotate270Image(Image   original)   {
        Image   copy;
        copy   =   Image.createImage(original.getHeight(),   original.getWidth());
        Graphics   g   =   copy.getGraphics();
        rotate270Draw(original,   g,   0,   0);
        return   Image.createImage(copy);
    }

    public   Image   flipVerticalImage(Image   original)   {
        Image   copy;
        copy   =   Image.createImage(original.getWidth(),   original.getHeight());
        Graphics   g   =   copy.getGraphics();
        flipVerticalDraw(original,   g,   0,   0);
        return   Image.createImage(copy);
    }

    public   Image   flipHorizontalImage(Image   original)   {
        Image   copy;
        copy   =   Image.createImage(original.getWidth(),   original.getHeight());
        Graphics   g   =   copy.getGraphics();
        flipHorizontalDraw(original,   g,   0,   0);
        return   Image.createImage(copy);
    }

    public   void   rotate90Draw(Image   original,   Graphics   g,   int   x,   int   y)   {   //90旋转
        int   clipWidth=g.getClipWidth(),clipHeight=g.getClipHeight();
        int   w   =   original.getWidth(),h   =   original.getHeight();
        for   (int   i   =   0;   i   <   w;   i++)   {
            for   (int   j   =   0;   j   <   h;   j++)   {
                g.setClip(x   +   j,   y   +   i,   1,   1);
                g.drawImage(original,   x   +   j   -   i,   y   -   h   +   j   +   i   +   1,   0);
            }
        }
        g.setClip(0,0,clipWidth,clipHeight);
    }

//图像   180   度   翻转
    public   void   rotate180Draw(Image   original,   Graphics   g,   int   x,   int   y)   {
        int   clipWidth=g.getClipWidth(),clipHeight=g.getClipHeight();
        int   w   =   original.getWidth(),h   =   original.getHeight();
        for   (int   i   =   0;   i   <   w;   i++)   {
            for   (int   j   =   0;   j   <   h;   j++)   {
                g.setClip(x   +   i,   y   +   j,   1,   1);
                g.drawImage(original,   x   -   w   +   i   *   2   +   1,   y   -   h   +   j   *   2   +   1,   0);
            }
        }
        g.setClip(0,0,clipWidth,clipHeight);
    }

    //图像   270   度   翻转
    public   void   rotate270Draw(Image   original,   Graphics   g,   int   x,   int   y)   {   //270旋转
        int   clipWidth=g.getClipWidth(),clipHeight=g.getClipHeight();
        int   w   =   original.getWidth(),h   =   original.getHeight();
        for   (int   i   =   0;   i   <   w;   i++)   {
            for   (int   j   =   0;   j   <   h;   j++)   {
                g.setClip(x   +   j,   x   +   i,   1,   1);
                g.drawImage(original,   x   +   j   +   i   -   w   +   1,   y   +   i   -   j,   0);
            }
        }
        g.setClip(0,0,clipWidth,clipHeight);
    }

    //图像   垂直镜像
    public   void   flipVerticalDraw(Image   original,   Graphics   g,   int   x,   int   y)   {
        int   clipWidth=g.getClipWidth(),clipHeight=g.getClipHeight();
        int   w   =   original.getWidth(),   h   =   original.getHeight();
        for   (int   i   =   0;   i   <   w;   i++)   {
            g.setClip(x   +   i,   y,   1,   h);
            g.drawImage(original,   x   -   w   +   i   *   2   +   1,   y,   0);
        }
        g.setClip(0,0,clipWidth,clipHeight);
    }

    //图像   水平镜像
    public   void   flipHorizontalDraw(Image   original,   Graphics   g,   int   x,   int   y)   {
        int   clipWidth=g.getClipWidth(),clipHeight=g.getClipHeight();
        int   w   =   original.getWidth(),   h   =   original.getHeight();
        for   (int   j   =   0;   j   <   h;   j++)   {
            g.setClip(x,   y   +   j,   w,   1);
            g.drawImage(original,   x,   y   -   h   +   j   *   2   +   1,   0);
        }
        g.setClip(0,0,clipWidth,clipHeight);
    }
}
图片缩放:
应该会涉及到各个象素点的颜色,还有邻近点的颜色混和。。。没做过。
gz 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -