亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? imagepersistence.java

?? 基于java的3d開發庫。對坐java3d的朋友有很大的幫助。
?? JAVA
字號:
//===========================================================================//=-------------------------------------------------------------------------=//= Module history:                                                         =//= - September 2 2005 - David Diaz: Original base version                  =//= - November 24 2005 - Oscar Chavarro: check pending:                     =//= - May 22 2006 - David Diaz/Oscar Chavarro: documentation added          =//= - August 6 2006                                                         =//=   - Oscar Chavarro: managed RGB and RGBA cases independently            =//=   - Oscar Chavarro: Awt BufferedImage convertion moved to render.awt    =//= - May 1 2007 - Oscar Chavarro: updated to ImageIO API                   =//===========================================================================package vsdk.toolkit.io.image;// Basic JDK classesimport java.io.BufferedOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.OutputStream;// Extended JDK classesimport javax.imageio.ImageIO;import java.awt.image.BufferedImage;import vsdk.toolkit.common.VSDK;import vsdk.toolkit.media.Image;import vsdk.toolkit.media.RGBImage;import vsdk.toolkit.media.RGBPixel;import vsdk.toolkit.media.RGBAImage;import vsdk.toolkit.media.IndexedColorImage;import vsdk.toolkit.render.awt.AwtRGBImageRenderer;import vsdk.toolkit.render.awt.AwtRGBAImageRenderer;import vsdk.toolkit.io.PersistenceElement;/**This class is a front end front which images of various formats can beexported and/or imported to/from files.@todo Does this implements a "Builder" design pattern??? A Factory design       pattern... possibly some of that combined with a Facade design       pattern? */public class ImagePersistence extends PersistenceElement{    /**    Given the filename of an input data file which contains an image, this    method tries to recognize the file format and load the contents of it    to the image.    @todo Do not assume the file format only from the filename extension,    but trying to detect file headers.    @param imagen - The file respesenting the image    @return An RGBAImage entity that contains the image loaded in memory.    Will change:      - Choose a better name for this method      - Do not recieve a File, but a Stream of bytes    */    public static RGBAImage importRGBA(File imagen) throws ImageNotRecognizedException    {        String type = extractExtensionFromFile(imagen);        RGBAImage retImage = new RGBAImage();        if( type.equals("tga") ) {            TargaImage t = new TargaImage(imagen);            t.exportRGBA(retImage);            return retImage;        }        else if( type.equals("jpg") || type.equals("jpeg") ||                 type.equals("gif") || type.equals("png") )  {            BufferedImage bi = null;            // OLD SLOW METHOD, DO NOT USE!            //java.awt.Toolkit awtTools = java.awt.Toolkit.getDefaultToolkit();            //java.awt.Image image;            //image = awtTools.getImage(imagen.getAbsolutePath());            //bi = toBufferedImage(image);            try {                bi = ImageIO.read(imagen);              }              catch ( Exception e ) {                  VSDK.reportMessage(null, VSDK.ERROR, "importRGBA",                                     "Cannot import image file \"" + imagen.getAbsolutePath() + "\"");                return null;            }            AwtRGBAImageRenderer.importFromAwtBufferedImage(bi, retImage);            return retImage;        }        throw new ImageNotRecognizedException("Image not recognized", imagen);    }    /**    Given the filename of an input data file which contains an image, this    method tries to recognize the file format and load the contents of it    to the image.    @todo Do not assume the file format only from the filename extension,    but trying to detect file headers.    @param imagen - The file respesenting the image    @return An RGBImage entity that contains the image loaded in memory.    Will change:      - Choose a better name for this method      - Do not recieve a File, but a Stream of bytes    */    public static RGBImage importRGB(File inImageFd) throws ImageNotRecognizedException    {        String type = extractExtensionFromFile(inImageFd);        RGBImage retImage = new RGBImage();        if( type.equals("tga") ) {            TargaImage t = new TargaImage(inImageFd);            t.exportRGB(retImage);            return retImage;        }        else if( type.equals("jpg") || type.equals("jpeg") ||                 type.equals("gif") || type.equals("png") )  {            BufferedImage bi = null;            // OLD SLOW METHOD, DO NOT USE!            //java.awt.Toolkit awtTools = java.awt.Toolkit.getDefaultToolkit();            //java.awt.Image image;            //image = awtTools.getImage(inImageFd.getAbsolutePath());            //bi = toBufferedImage(image);            try {                bi = ImageIO.read(inImageFd);              }              catch ( Exception e ) {                  VSDK.reportMessage(null, VSDK.ERROR, "importRGB",                                     "Cannot import image file \"" + inImageFd.getAbsolutePath() + "\"");                 throw new ImageNotRecognizedException("Error reading internal file:\n" + e, inImageFd);            }            AwtRGBImageRenderer.importFromAwtBufferedImage(bi, retImage);            return retImage;        }        throw new ImageNotRecognizedException("Image not recognized", inImageFd);    }    /**    Given the filename of an input data file which contains an image, this    method tries to recognize the file format and load the contents of it    to the image.    @todo Do not assume the file format only from the filename extension,    but trying to detect file headers.    @param imagen - The file respesenting the image    @return An IndexedColorImage entity that contains the image loaded in memory.    Will change:      - Choose a better name for this method      - Do not recieve a File, but a Stream of bytes    */    public static IndexedColorImage importIndexedColor(File imagen) throws ImageNotRecognizedException    {        String type = extractExtensionFromFile(imagen);        IndexedColorImage retImage;        Image img;        if( type.equals("bw") ) {            img = ImagePersistenceSGI.readImageSGI(imagen.getAbsolutePath());            if ( img instanceof IndexedColorImage ) {                retImage = (IndexedColorImage)img;            }            else {                throw new ImageNotRecognizedException("Convertion needed",                 imagen);            }            return retImage;        }        throw new ImageNotRecognizedException("Image not recognized", imagen);    }       private static void transferPixels(int[] ori, byte[] dest, int w, int h, int pixelDepth)    {        int bPos=0;        for(int i=0; i<w*h; i++)        {            dest[bPos]=(byte)(ori[i]>>16);            bPos++;            dest[bPos]=(byte)(ori[i]>>8);            bPos++;            dest[bPos]=(byte)(ori[i]>>0);            bPos++;            if(pixelDepth==32)            {                dest[bPos]=(byte)(ori[i]>>24);                bPos++;            }        }    }        /**    This method writes the contents of the specified image to a file in     binary JPEG image format. Returns true if everything    works fine, false if something fails, like a permission access denied    or if storage device runs out of space.    */        public static boolean exportJPG(File fd, Image img)    {        try {            FileOutputStream fos = new FileOutputStream(fd);            exportJPG(fos, img);            fos.close();        }        catch ( Exception e ) {            return false;        }        return true;    }    public static void exportJPG(OutputStream os, Image img)        throws Exception    {        BufferedImage bimg;        int x, y, xSize, ySize;        RGBPixel p;        xSize = img.getXSize();        ySize = img.getYSize();        bimg =  new BufferedImage(xSize, ySize, BufferedImage.TYPE_INT_RGB);        for ( y = 0; y < ySize; y++ ) {            for ( x = 0; x < xSize; x++ ) {                p = img.getPixelRgb(x, y);                bimg.setRGB(x, y,                   (VSDK.signedByte2unsignedInteger(p.r)) * 256 * 256 +                  (VSDK.signedByte2unsignedInteger(p.g)) * 256 +                  (VSDK.signedByte2unsignedInteger(p.b))                );            }        }        ImageIO.write(bimg, "jpg", os);        // OLD DEPRECATED API, DO NOT USE!        //com.sun.image.codec.jpeg.JPEGImageEncoder jpeg;        //jpeg = com.sun.image.codec.jpeg.JPEGCodec.createJPEGEncoder(fos);        //jpeg.encode(bimg);    }    /**    This method writes the contents of the specified image to a file in     binary GIF image format. Returns true if everything    works fine, false if something fails, like a permission access denied    or if storage device runs out of space.    */        public static boolean exportGIF(File fd, Image img)    {        try {            BufferedImage bimg;            int x, y, xSize, ySize;            RGBPixel p;            xSize = img.getXSize();            ySize = img.getYSize();            bimg =  new BufferedImage(xSize, ySize, BufferedImage.TYPE_INT_RGB);            for ( y = 0; y < ySize; y++ ) {                for ( x = 0; x < xSize; x++ ) {                    p = img.getPixelRgb(x, y);                    bimg.setRGB(x, y,                       (VSDK.signedByte2unsignedInteger(p.r)) * 256 * 256 +                      (VSDK.signedByte2unsignedInteger(p.g)) * 256 +                      (VSDK.signedByte2unsignedInteger(p.b))                    );                }            }            FileOutputStream fos = new FileOutputStream(fd);            ImageIO.write(bimg, "gif", fos);            // OLD DEPRECATED API, DO NOT USE!            //com.sun.image.codec.jpeg.JPEGImageEncoder jpeg;            //jpeg = com.sun.image.codec.jpeg.JPEGCodec.createJPEGEncoder(fos);            //jpeg.encode(bimg);            fos.close();        }        catch ( Exception e ) {            return false;        }        return true;    }    /**    This method writes the contents of the specified image to a file in     binary RGB PPM format (i.e. P6 PNG sub-format). Returns true if everything    works fine, false if something fails, like a permission access denied    or if storage device runs out of space.    */    public static boolean exportPPM(File fd, Image img)    {        try {            BufferedOutputStream writer;            FileOutputStream fos = new FileOutputStream(fd);            writer = new BufferedOutputStream(fos);            String linea1 = "P6\n";            String linea2 = img.getXSize() + " " + img.getYSize() + "\n";            String linea3 = "255\n";            byte arr[];            arr = linea1.getBytes();            writer.write(arr, 0, arr.length);            arr = linea2.getBytes();            writer.write(arr, 0, arr.length);            arr = linea3.getBytes();            writer.write(arr, 0, arr.length);            RGBPixel p;            int x = 0, y = 0;            for ( y = 0; y < img.getYSize(); y++ ) {                for ( x = 0; x < img.getXSize(); x++ ) {                    p = img.getPixelRgb(x, y);                    writer.write(p.r);                    writer.write(p.g);                    writer.write(p.b);                }            }            writer.flush();            writer.close();            fos.close();        }        catch (Exception e) {            return false;        }        return true;    }    //=================================================================    // DESACTIVATED METHODS!!! DO NOT USE!!!    //=================================================================/*    private static boolean hasAlpha(java.awt.Image image)     {        if (image instanceof BufferedImage)         {            BufferedImage bimage = (BufferedImage)image;            return bimage.getColorModel().hasAlpha();        }            java.awt.image.PixelGrabber pg;        pg = new java.awt.image.PixelGrabber(image, 0, 0, 1, 1, false);        try         {            pg.grabPixels();        }         catch (InterruptedException e)         {        }            java.awt.image.ColorModel cm = pg.getColorModel();        return cm.hasAlpha();    }    private static BufferedImage toBufferedImage(java.awt.Image image)     {        if ( image instanceof BufferedImage ) {            return (BufferedImage)image;        }        //System.out.println(image.getClass().getName());            // This code ensures that all the pixels in the image are loaded        image = new javax.swing.ImageIcon(image).getImage();            // Determine if the image has transparent pixels; for this method's        // implementation, see e661 Determining If an Image Has Transparent Pixels        boolean hasAlpha = hasAlpha(image);             // Create a buffered image with a format that's compatible with the screen        BufferedImage bimage = null;        java.awt.GraphicsEnvironment ge;        ge = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment();        try         {            // Determine the type of transparency of the new buffered image            int transparency = java.awt.Transparency.OPAQUE;            if ( hasAlpha ) {                transparency = java.awt.Transparency.BITMASK;            }                // Create the buffered image            java.awt.GraphicsDevice gs = ge.getDefaultScreenDevice();            java.awt.GraphicsConfiguration gc = gs.getDefaultConfiguration();            bimage = gc.createCompatibleImage(image.getWidth(null), image.getHeight(null), transparency);        }         catch ( java.awt.HeadlessException e ) {            // The system does not have a screen        }            if (bimage == null)         {            // Create a buffered image using the default color model            int type = BufferedImage.TYPE_INT_RGB;            if (hasAlpha)             {                type = BufferedImage.TYPE_INT_ARGB;            }            bimage = new BufferedImage(image.getWidth(null), image.getHeight(null), type);        }            // Copy image to buffered image        java.awt.Graphics g = bimage.createGraphics();            // Paint the image onto the buffered image        g.drawImage(image, 0, 0, null);        g.dispose();        return bimage;    }*/    }//===========================================================================//= EOF                                                                     =//===========================================================================

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月激情六月综合| 91麻豆精品国产无毒不卡在线观看| 欧美二区三区91| 国产精品久久久久桃色tv| 国模一区二区三区白浆| 26uuu亚洲综合色| 美女脱光内衣内裤视频久久影院| 3d成人h动漫网站入口| 五月激情丁香一区二区三区| 精品1区2区3区| 久久成人av少妇免费| 精品毛片乱码1区2区3区| 蜜臀久久99精品久久久画质超高清| 久久久久亚洲综合| 国产精品一区二区在线观看网站 | 午夜精品123| 欧美日本在线看| 亚洲成人自拍网| 日韩欧美国产精品| 久久成人久久爱| 99久免费精品视频在线观看 | 7777精品伊人久久久大香线蕉超级流畅| 久久理论电影网| 99国产精品国产精品久久| 国产精品欧美综合在线| 国产91综合网| 亚洲猫色日本管| 欧美日韩一区二区在线观看| 香蕉乱码成人久久天堂爱免费| 欧美在线影院一区二区| 婷婷久久综合九色综合伊人色| 666欧美在线视频| 亚洲成在人线在线播放| 日韩视频中午一区| 国产电影一区在线| 亚洲欧洲一区二区在线播放| 色狠狠一区二区| 狠狠v欧美v日韩v亚洲ⅴ| 国产精品国产三级国产三级人妇| 99久久er热在这里只有精品66| 亚洲成av人片在www色猫咪| 欧美人成免费网站| 国产精品资源站在线| 亚洲色欲色欲www| 欧美精品aⅴ在线视频| 国产自产v一区二区三区c| 亚洲午夜久久久久久久久久久| 欧美va亚洲va香蕉在线| 国产一区二区在线电影| 亚洲永久精品国产| 日韩欧美一区二区不卡| 国产成人av福利| 亚洲一二三区在线观看| 久久久久99精品一区| 97久久精品人人爽人人爽蜜臀| 午夜激情久久久| 中文在线资源观看网站视频免费不卡| 成人av免费网站| 视频在线观看一区| 国产精品成人免费| 国产欧美日韩一区二区三区在线观看| 欧美又粗又大又爽| 国产精品主播直播| 日韩和欧美一区二区三区| 国产精品初高中害羞小美女文| 欧美精品在线观看播放| 国产一区二区在线视频| 香蕉影视欧美成人| 日韩一区二区三区免费观看| 欧美日韩电影一区| 91丝袜美女网| 99久久久久免费精品国产| 国产专区欧美精品| 性做久久久久久久久| 亚洲欧美一区二区三区国产精品 | 久88久久88久久久| 亚洲精选视频在线| 综合电影一区二区三区| 亚洲国产精品高清| 国产日本一区二区| www欧美成人18+| 精品少妇一区二区三区 | 欧美三级韩国三级日本三斤| 91九色02白丝porn| 91小宝寻花一区二区三区| 国产激情视频一区二区三区欧美 | 精品av综合导航| 538prom精品视频线放| 欧美日本一区二区三区四区| 91国偷自产一区二区三区观看| 精品一区二区三区日韩| 精品一区二区三区影院在线午夜| 蜜桃视频免费观看一区| 日产精品久久久久久久性色| 三级不卡在线观看| 亚洲福利电影网| 午夜精品久久久久久久久| 日本视频一区二区| 蜜臀久久99精品久久久久宅男| 亚洲最大成人综合| 亚洲va韩国va欧美va| 日韩专区欧美专区| 玖玖九九国产精品| 韩国中文字幕2020精品| 国产最新精品免费| 国产盗摄一区二区三区| 成人免费毛片a| 成人妖精视频yjsp地址| 欧美伊人久久大香线蕉综合69| 欧美日韩不卡在线| 欧美色爱综合网| 91精品国产综合久久久久久久久久| 日韩欧美综合一区| 欧美日韩激情在线| 欧美一区二区三区四区久久| 在线综合视频播放| 2022国产精品视频| 国产女主播在线一区二区| 国产精品国产三级国产有无不卡| 亚洲男人的天堂网| 亚洲一区二区精品3399| 国产一区在线精品| 99久久精品国产毛片| 欧美卡1卡2卡| 91精品免费观看| 中文在线一区二区 | 欧美一区二区精美| 亚洲国产精华液网站w| 亚洲午夜在线视频| 蜜臂av日日欢夜夜爽一区| 国产成人综合在线| 在线视频欧美精品| 欧美嫩在线观看| ...av二区三区久久精品| 亚洲国产精品天堂| 国产91精品一区二区麻豆网站| 欧美亚洲国产bt| 精品粉嫩超白一线天av| 一区二区三区四区中文字幕| 日韩不卡一二三区| 国产美女精品一区二区三区| 99久久精品国产麻豆演员表| 欧美疯狂性受xxxxx喷水图片| 久久综合九色综合欧美就去吻| 亚洲美女在线国产| 韩国毛片一区二区三区| 制服丝袜在线91| 亚洲日本免费电影| 久久精品国产一区二区三| 91亚洲精品乱码久久久久久蜜桃| 日韩视频在线观看一区二区| 国产精品国产三级国产三级人妇 | 亚洲日本在线看| 久久97超碰色| 欧美日韩一卡二卡三卡| 国产精品国产三级国产普通话三级| 国产精品久久久久久亚洲毛片 | 免费观看在线色综合| www.一区二区| 国产精品入口麻豆九色| 精品午夜久久福利影院| 欧美一级二级三级乱码| 亚洲一区二区欧美激情| 91浏览器打开| 国产精品乱子久久久久| 韩国视频一区二区| 欧美老肥妇做.爰bbww| 亚洲精品乱码久久久久| av一二三不卡影片| 久久精品人人做| 久久超碰97人人做人人爱| 欧美久久久一区| 亚洲免费电影在线| 国产精品香蕉一区二区三区| 亚洲精品一线二线三线| 日韩国产欧美在线播放| 欧美精品乱码久久久久久按摩 | 色婷婷久久久亚洲一区二区三区| 欧美激情综合在线| 国产成人精品影院| 国产欧美一区二区精品性色超碰| 国产在线看一区| 久久夜色精品一区| 国产美女一区二区| 久久久久国产精品免费免费搜索 | 国产成人在线色| 国产欧美一区二区三区沐欲| 国产精品一区二区在线看| 国产日韩精品一区二区三区在线| 激情亚洲综合在线| 欧美精品一区二区久久久| 麻豆精品国产传媒mv男同| 欧美一二区视频| 免费观看在线色综合| 亚洲精品一区二区三区99 | 性感美女极品91精品| 欧美肥大bbwbbw高潮| 久久精品二区亚洲w码| 欧美一级午夜免费电影| 国内精品久久久久影院薰衣草|