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

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

?? openimage.java

?? jpeg2000編解碼
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package gui;import javax.swing.event.*;import java.awt.image.*;import java.awt.event.*;import javax.swing.*;import java.text.*;import java.awt.*;import java.io.*;import jj2000.j2k.quantization.dequantizer.*;import jj2000.j2k.image.invcomptransf.*;import jj2000.j2k.wavelet.synthesis.*;import jj2000.j2k.fileformat.reader.*;import jj2000.j2k.codestream.reader.*;import jj2000.j2k.entropy.decoder.*;import jj2000.j2k.image.input.*;import jj2000.j2k.codestream.*;import jj2000.j2k.decoder.*;import jj2000.j2k.image.*;import jj2000.j2k.util.*;import jj2000.j2k.io.*;import jj2000.disp.*;import colorspace.*;import com.sun.image.codec.jpeg.*;/** Class to open and display all supported image types */public class OpenImage     implements Runnable, Markers, ActionListener, ThreadSurvey {    /** Reference to the temporary raw output file */    private File tmpDecFile = null;    /** Reference to the decoder instance (for JPEG 2000 files) */    private Decoder dec = null;    /** Format float for display (3 fractionnal digits) */    private static final DecimalFormat df = new DecimalFormat("##0.000");    /** Initial directory to open images */    private static File curDir = new File(System.getProperty("user.home"));    /** Reference to the main frame */    private Main mainFrame;    /** Reference to the main frame's desktop */    private JDesktopPane desktop = null;    /** Reference to the J2KGuiDecoder instance */    private J2KGuiDecoder j2kdecoder;    /** Image created from the file */    private Image image = null;    /** Source file used to create the image */    private File inFile = null;    /** File with decoded data (PPM or PPM) */    private File rawFile = null;    /** Number of components in the codestream (when it's needed) */    private int ncCod = 1;    /** Number of components in the decoded image */    private int ncImg = 1;    /** Bit-depth of each component in the image */    private int[] depth =  {8};    /** Whether or not pgx output file is needed (i.e. one component     * at least has a bit-depth greater than 8) */    private boolean pgxNeeded = false;    /** Input image width */    private int width = 0;    /** Input image height */    private int height = 0;    /** Input image type */    private int fileType;    /** Bit-rate of the source file */    private double rate;    /** Raw images file filter description */    private final static String rawImgDesc = "Raw images .pgm, .ppm, .pgx";    /** Raw images files supported extensions */    private final static String[] rawext = { "pgm","ppm", "pgx" };    /** JPEG 2000 file filter description */    private final static String jpeg2kDesc = "JPEG 2000 images .j2k .jpc .jp2";    /** JPEG 2000 files supported extensions */    private final static String[] j2kext = { "j2k", "jpc", "jp2"};    /** JPEG files filter description */    private final static String jpgDesc = "JPEG images .jpg";    /** JPEG images supported extensions */    private final static String[] jpgext = {"jpg"};    /** Input image is JPEG */    public static final int FILE_TYPE_JPEG = 1;    /** Input image is PGM */    public static final int FILE_TYPE_PGM = 2;    /** Input image is PPM */    public static final int FILE_TYPE_PPM = 3;    /** Input image is PGX */    public static final int FILE_TYPE_PGX = 4;    /** Input image is JPEG 2000 */    public static final int FILE_TYPE_JPEG2000 = 5;    /** Input image type is unsupported */    public static final int FILE_TYPE_UNKNOWN = 6;    /** Whether or not a file has been selected for opening. This allows     * dealing with cases where the Cancel button is pressed. */    private boolean fileSelected = false;    /**      * Class constructor. This is used when input file is not provided     * from a JFileChooser */    public OpenImage(Main mainFrame, JDesktopPane desktop, 		     String fileName) {        this.mainFrame = mainFrame;        this.desktop = desktop;	this.inFile = new File(fileName);	if(inFile.isDirectory() || !inFile.exists() || 	   inFile.length()<=0) {	    return;	}	fileSelected = true;	fileType = determineFileType();    }        /**      * Class constructor. Creates a JFileChooser in order to select the input     * file and determine the file type.      * */    public OpenImage(Main mainFrame, JDesktopPane desktop) {        this.mainFrame = mainFrame;        this.desktop = desktop;        JFileChooser fcOpen = new JFileChooser(curDir);        fcOpen.addChoosableFileFilter(new JJFileFilter(rawImgDesc,rawext));        fcOpen.addChoosableFileFilter(new JJFileFilter(jpgDesc,jpgext));        fcOpen.addChoosableFileFilter(new JJFileFilter(jpeg2kDesc,j2kext));                if(fcOpen.showDialog(desktop,"Open")==JFileChooser.APPROVE_OPTION) {            inFile = fcOpen.getSelectedFile();                            // Check that this is a "real" file            if(inFile.isDirectory() || !inFile.exists() ||                inFile.length()<=0) {                return;            }            // Save current directory for next opening operation            curDir = fcOpen.getCurrentDirectory();        } else {            return;        }        fileSelected = true;        fileType = determineFileType();    }    /** Whether or not a file has been selected for opening */    public boolean isFileSelected() {        return fileSelected;    }    /**      * Determine the input file type by reading and analizing its first 12     * bytes. In the case of JPEG 2000 codestream, it also retrieves the image     * dimension and verify that the bit-depth and the number of components is     * are supported by the current display module.      * */    private int determineFileType() {        // Read the first twelve bytes of the bit stream        byte[] b = new byte[12];        BufferedInputStream bis = null;        try {            bis = new BufferedInputStream(new FileInputStream(inFile));            bis.read(b,0,12);            bis.close();        } catch(IOException ioe) {             return FILE_TYPE_UNKNOWN;         }        if(b[0]==(byte)0xff && b[1]==(byte)0xd8 && b[2]==(byte)0xff) { // JPEG            return FILE_TYPE_JPEG;        } else if(b[0]=='P' && b[1]=='5') { // PGM file            return FILE_TYPE_PGM;        } else if(b[0]=='P' && b[1]=='6') { // PPM file            return FILE_TYPE_PPM;        } else if(b[0]=='P' && b[1]=='G') { // PGX file            return FILE_TYPE_PGX;        } else if((b[0]==(byte)0xFF && b[1]==(byte)0x4F) ||		  (b[0]==(byte)0x00 && b[1]==(byte)0x00 &&		   b[2]==(byte)0x00 && b[3]==(byte)0x0c &&		   b[4]==(byte)0x6a && b[5]==(byte)0x50 &&		   b[6]==(byte)0x20 && b[7]==(byte)0x20 &&		   b[8]==(byte)0x0d && b[9]==(byte)0x0a &&		   b[10]==(byte)0x87 && b[11]==(byte)0x0a) ) { // J2K image	    // Initialize default parameters	    ParameterList defpl = new ParameterList();	    String[][] param = Decoder.getAllParameters();	    	    for (int i=param.length-1; i>=0; i--) {		if(param[i][3]!=null)		    defpl.put(param[i][0],param[i][3]);	    }	    // Create parameter list using defaults	    ParameterList pl = new ParameterList(defpl);	    // Open RandomAccessIO to read JPEG 2000 image information	    RandomAccessIO in = null;	    FileFormatReader ff = null;	    HeaderDecoder hd = null;	    BlkImgDataSrc palettized, channels, resampled, color;	    ColorSpace csMap;	    try {		in = new BEBufferedRandomAccessFile(inFile,"r");		// File format reader (if needed)		ff = new FileFormatReader(in);		ff.readFileFormat();		if(ff.JP2FFUsed) {		    in.seek(ff.getFirstCodeStreamPos());		}		// Header decoder		HeaderInfo hi = new HeaderInfo();		hd = new HeaderDecoder(in,pl,hi);		if(ff.JP2FFUsed) {		    // Bit stream reader		    DecoderSpecs decSpec = hd.getDecoderSpecs();		    BitstreamReaderAgent breader = BitstreamReaderAgent.			createInstance(in,hd,pl,decSpec,				       pl.getBooleanParameter("cdstr_info"),				       hi);		    // Entropy decoder		    EntropyDecoder entdec = hd.			createEntropyDecoder(breader,pl);		    // Dequantizer		    ncCod = hd.getNumComps();		    depth = new int[ncCod];		    for(int i=0; i<ncCod;i++) { 			depth[i] = hd.getOriginalBitDepth(i); 		    }		    Dequantizer deq = hd.			createDequantizer(entdec,depth,decSpec);		    // Inverse wavelet 		    InverseWT invWT = InverseWT.createInstance(deq,decSpec);		    // Converter		    ImgDataConverter converter = new ImgDataConverter(invWT,0);		    // Inverse component transform		    InvCompTransf ictransf = 			new InvCompTransf(converter,decSpec,depth,pl);		    // Colorspace mapping		    csMap = new ColorSpace(in,hd,pl);		    channels = hd.			createChannelDefinitionMapper(ictransf,csMap);		    resampled  = hd.createResampler(channels,csMap);		    palettized = hd.			createPalettizedColorSpaceMapper(resampled,csMap);		    color = hd.createColorSpaceMapper(palettized,csMap);		    int res = breader.getImgRes();		    invWT.setImgResLevel(res);		    if(color!=null) {			ncImg = color.getNumComps();			width = color.getImgWidth();			height = color.getImgHeight();			if(ncImg!=ncCod) {			    depth = new int[ncImg];			    for(int c=0; c<ncImg; c++) {				depth[c] = color.getNomRangeBits(c);			    }			}		    } else {			ncImg = ncCod;			width = hd.getImgWidth();			height = hd.getImgHeight();		    }		} else { 		    ncImg = hd.getNumComps();		    depth = new int[ncImg];		    for(int c=0; c<ncImg; c++) {			depth[c] = hd.getOriginalBitDepth(c);		    }		    width = hd.getImgWidth();		    height = hd.getImgHeight();		}		in.close();	    } catch(Exception e) {                JOptionPane.showMessageDialog(desktop,"Unable to read info "+					      "from "+					      "file "+inFile.getName()+":\n"+					      e.getMessage()+"\n",                                              "Error",                                              JOptionPane.ERROR_MESSAGE);		e.printStackTrace();                try { bis.close(); } catch(IOException ioe2) {}                fileSelected = false;                return FILE_TYPE_UNKNOWN;	    }                         // Check if found codestream will be supported            if(ncCod!=1 && ncCod!=3) {                JOptionPane.showMessageDialog(desktop,"Codestream with "+ncCod+                                              " components not supported.",                                              "Error",                                              JOptionPane.ERROR_MESSAGE);                fileSelected = false;                return FILE_TYPE_UNKNOWN;            }            return FILE_TYPE_JPEG2000;        } else {            return FILE_TYPE_UNKNOWN;        }    }    /** Start image opening (and decoding if needed) operation(s) */    public void run() {        // +---------------------+        // | Create Image object |        // +---------------------+        ImgReader imr;	mainFrame.saveOpenedFile(inFile);        switch(fileType) {        case FILE_TYPE_JPEG:            openJPEG(inFile);	    displayImage(null,true);            break;        case FILE_TYPE_PGM:            openPGM(inFile);            rawFile = inFile;	    displayImage(null,false);            break;        case FILE_TYPE_PPM:            openPPM(inFile);            rawFile = inFile;	    displayImage(null,false);            break;        case FILE_TYPE_PGX:            openPGX(inFile);            rawFile = inFile;	    displayImage(null,false);            break;        case FILE_TYPE_JPEG2000:            j2kdecoder = new J2KGuiDecoder(mainFrame,desktop,this,inFile,width,                                           height);            j2kdecoder.start();	    displayImage(null,true);            return;        case FILE_TYPE_UNKNOWN:        default:            // +--------------------+            // | Unknown file type  |            // +--------------------+             JOptionPane.showMessageDialog(desktop,inFile.getPath(),                                          "Unrecognized image format",                                          JOptionPane.ERROR_MESSAGE);            return;        }    }    /** 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一卡二卡| 亚洲天堂成人网| 偷拍自拍另类欧美| 在线免费精品视频| 自拍偷拍亚洲欧美日韩| av在线播放一区二区三区| 欧美精品一区二区高清在线观看| 日韩电影在线观看一区| 欧美日韩国产经典色站一区二区三区| 亚洲欧美一区二区三区久本道91| 不卡av免费在线观看| 欧美国产日韩在线观看| 成人美女在线视频| 国产精品国产馆在线真实露脸| 成人综合在线网站| 国产精品久久综合| 99国产精品国产精品久久| 中文一区二区在线观看| 国产白丝精品91爽爽久久| 久久久99精品免费观看| 国产成人综合自拍| 国产日产亚洲精品系列| 国产91精品一区二区麻豆亚洲| 国产日韩欧美一区二区三区综合| 国产成人鲁色资源国产91色综| 国产亚洲污的网站| 高清不卡在线观看av| 国产精品免费久久久久| 91网站黄www| 一区二区三区.www| 欧美日韩夫妻久久| 免费高清成人在线| 久久免费午夜影院| 成人app在线观看| 亚洲精品综合在线| 欧美精品第1页| 精品亚洲成av人在线观看| 久久久99精品久久| 99久久99久久精品免费观看| 亚洲精品乱码久久久久久久久| 在线观看91视频| 日本美女一区二区三区视频| 日韩精品中文字幕在线一区| 狠狠色丁香婷婷综合| 国产精品区一区二区三区| 色综合久久久久综合体桃花网| 亚洲aⅴ怡春院| 精品日韩在线观看| 国产精品18久久久久久久久| 综合中文字幕亚洲| 9191国产精品| 国产99久久久国产精品免费看| 亚洲男人天堂av网| 日韩一区二区电影网| 成人精品国产免费网站| 亚洲国产中文字幕在线视频综合| 日韩美女在线视频| 波多野结衣中文一区| 一区二区三区蜜桃网| 精品成人免费观看| 91美女精品福利| 成人午夜伦理影院| 一级中文字幕一区二区| 中文字幕成人av| 石原莉奈在线亚洲二区| 精品国产第一区二区三区观看体验| 国产精品综合一区二区三区| 亚洲视频狠狠干| 日韩午夜在线播放| 91久久精品日日躁夜夜躁欧美| 男女性色大片免费观看一区二区 | 国内精品国产成人| 亚洲理论在线观看| 久久先锋资源网| 在线观看中文字幕不卡| 精品在线免费视频| 樱桃视频在线观看一区| 欧美成人激情免费网| 91欧美一区二区| 国内外精品视频| 亚洲高清不卡在线| 国产精品国产三级国产aⅴ无密码| 7777精品伊人久久久大香线蕉超级流畅| 成人综合在线视频| 蜜桃视频一区二区三区| 一区二区三区丝袜| 国产日产欧美一区| 日韩欧美一级二级三级久久久| 色综合色狠狠综合色| 国产一区二区三区在线观看免费| 亚洲国产视频一区| 国产精品国产三级国产有无不卡| 在线成人免费观看| 欧美在线你懂得| 成人午夜av影视| 精品一区二区三区在线播放视频 | 丰满少妇久久久久久久| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲欧美二区三区| 欧美国产精品一区二区三区| 日韩一级片在线观看| 欧美在线影院一区二区| proumb性欧美在线观看| 国产精品99久久久久久久vr| 日韩国产成人精品| 亚洲成av人综合在线观看| 1区2区3区国产精品| 国产欧美一区二区精品婷婷| 精品三级av在线| 日韩视频在线一区二区| 欧美日韩国产a| 在线一区二区三区四区五区| 丰满放荡岳乱妇91ww| 国产麻豆一精品一av一免费 | 日本中文字幕一区二区有限公司| 一区二区三区丝袜| 亚洲黄色av一区| 国产精品国产成人国产三级| 欧美国产日韩在线观看| 久久综合色之久久综合| 欧美精品一区二区三区蜜臀| 欧美大片日本大片免费观看| 3d成人h动漫网站入口| 欧美久久久久免费| 欧美日韩的一区二区| 欧美日韩中文字幕一区| 欧美性色黄大片| 欧洲精品一区二区| 91成人免费在线视频| 欧美三区在线观看| 在线观看亚洲精品视频| 欧美亚洲丝袜传媒另类| 91福利在线观看| 欧美亚一区二区| 欧美乱妇15p| 欧美精品久久久久久久久老牛影院| 欧美福利电影网| 欧美一区二区日韩| 日韩一区二区三区高清免费看看 | 欧美日韩二区三区| 欧美卡1卡2卡| 欧美电视剧在线观看完整版| 精品国产乱码久久久久久闺蜜| 久久久久久免费| 国产日产欧美一区| 中文字幕在线不卡一区二区三区| 中文字幕中文字幕在线一区| 一区在线观看视频| 亚洲精品免费在线播放| 亚洲成在人线免费| 日本在线观看不卡视频| 精久久久久久久久久久| 国产精品18久久久久久vr| 成人精品小蝌蚪| 色综合天天综合网天天看片| 欧美日韩电影在线播放| 日韩三级av在线播放| 久久综合视频网| 亚洲欧美在线视频观看| 一区二区高清免费观看影视大全| 亚洲妇熟xx妇色黄| 久久精品99久久久| 国产成人免费视频一区| 日韩精品在线一区| 国产亚洲1区2区3区| 最新国产の精品合集bt伙计| 午夜在线成人av| 久久se精品一区精品二区| 成人黄色电影在线| 在线观看成人小视频| 欧美一区国产二区| 亚洲国产精品成人久久综合一区| 伊人夜夜躁av伊人久久| 日本一区中文字幕| 国产成人午夜精品影院观看视频| 97精品电影院| 欧美久久久久久蜜桃| 久久亚洲春色中文字幕久久久| 国产精品久久久久一区二区三区| 亚洲一本大道在线| 国内精品国产成人| 色婷婷av一区| 精品国产a毛片| 亚洲精品高清在线| 久久国产精品99精品国产 | 成人深夜在线观看| 欧美视频在线播放| 久久亚洲免费视频| 一级日本不卡的影视| 捆绑变态av一区二区三区| 成人av资源在线观看| 欧美欧美欧美欧美| 国产欧美日本一区二区三区| 亚洲一区二区精品久久av| 国产在线视视频有精品| 91福利视频网站| 国产蜜臀av在线一区二区三区 | 最新不卡av在线| 极品销魂美女一区二区三区| 色哟哟一区二区|