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

📄 svgexport.java

📁 完全基于java开发的svg矢量绘图工具
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                                    w=it.next();                                                                        if(w instanceof PNGImageWriter) {                                                                                break;                                    }                                }                                                                final ImageWriter writer=w;                                                                //writing the image                                ImageOutputStream out=ImageIO.createImageOutputStream(new File(new URI(fpath)));                                writer.setOutput(out);                                                                //adding the listener to the writer                                writer.addIIOWriteProgressListener(new IIOWriteProgressListener() {                                                                        public void imageComplete(ImageWriter wr) {                                                                                writer.removeIIOWriteProgressListener(this);                                        progressBar.setVisible(false);                                    }                                                                        public void writeAborted(ImageWriter wr) {                                                                                writer.removeIIOWriteProgressListener(this);                                        progressBar.setVisible(false);                                    }                                                                        public void imageProgress(ImageWriter wr, float value) {                                                                                progressBar.setProgressBarValue(25+3*value/4, 0, 100);                                                                                if(progressBar.cancelAction()) {                                                                                        writer.abort();                                                                                        JOptionPane.showMessageDialog(  getSVGEditor().getParent(),                                                     messageexporterror, labelerror, JOptionPane.WARNING_MESSAGE);                                            }                                    }                                                                        public void imageStarted(ImageWriter wr, int arg1) {}                                                                        public void thumbnailComplete(ImageWriter wr) {}                                                                        public void thumbnailProgress(ImageWriter wr, float arg1) {}                                                                        public void thumbnailStarted(ImageWriter wr, int arg1, int arg2) {}                                });                                                                writer.write(null, iioImage, writer.getDefaultWriteParam());                                                                //cleaning up                                out.flush();                                writer.removeAllIIOWriteProgressListeners();                                progressBar.setVisible(false);                                writer.dispose();                                out.close();                                                            }catch (Exception ex){                                ex.printStackTrace();                                                                progressBar.setVisible(false);                                                                SwingUtilities.invokeLater(new Runnable() {                                                                        public void run() {                                                                                JOptionPane.showMessageDialog(  getSVGEditor().getParent(),                                                 messageexporterror, labelerror, JOptionPane.WARNING_MESSAGE);                                                                                    }                                });                                                                try{                                    //removing the file that had to be written                                    new File(new URI(fpath)).delete();                                }catch (Exception ex2) {}                            }                        }                    };                                    }                                break;                            case BMP_FORMAT :                                res=bmpExportDialog.showExportDialog(frame);                                if(res==ExportDialog.OK_ACTION){                                        //initializing the progress bar and showing it                    progressBar.setIndeterminate(true, true);                    progressBar.setVisible(true);                                        final double width=bmpExportDialog.getExportSize().x, height=bmpExportDialog.getExportSize().y;                    final boolean usePalette=bmpExportDialog.isUsePalette();                                        //creating the canvas that will be used to generate the pdf                    new ExportCanvas(frame.getScrollPane().getSVGCanvas().getDocument(), progressBar) {                                                protected void doWhenRenderingDone() {                            try{                                                                int type=BufferedImage.TYPE_3BYTE_BGR;                                                                if(usePalette) {                                                                        type=BufferedImage.TYPE_BYTE_INDEXED;                                }                                                                //creating the image that will be written                                BufferedImage wImage=new BufferedImage((int)width, (int)height, type);                                                                Graphics2D g2=(Graphics2D)wImage.getGraphics();                                                                //getting the graphics node that will be painted                                GraphicsNode gn=getGraphicsNode();                                                                //computing the graphics transformation so that the image is scaled to the defined size                                Dimension canvasSize=getCanvasSize();                                gn.setTransform(AffineTransform.getScaleInstance(width/canvasSize.width, height/canvasSize.height));                                                                //painting the image                                g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);                                g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);                                g2.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);                                g2.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);                                g2.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_DISABLE);                                g2.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);                                g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);                                g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);                                g2.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE);                                                                g2.setColor(Color.white);                                g2.fillRect(0, 0, (int)width, (int)height);                                gn.paint(g2);                                                                //creating the IIOImage                                IIOImage iioImage=new IIOImage(wImage, null, null);                                                                Iterator<ImageWriter> it=ImageIO.getImageWritersByMIMEType("image/bmp");                                ImageWriter w=null;                                                                while(it.hasNext()) {                                                                        w=it.next();                                                                        if(w instanceof BMPImageWriter) {                                                                                break;                                    }                                }                                                                //getting the image writer                                final ImageWriter writer=w;                                BMPImageWriteParam param=new BMPImageWriteParam();                                param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);                                                                if(usePalette) {                                                                        param.setCompressionType("BI_RGB");                                                                    }else {                                                                        param.setCompressionType("BI_BITFIELDS");                                }                                                                ImageOutputStream out=ImageIO.createImageOutputStream(new RandomAccessFile(new File(new URI(fpath)), "rw"));                                                                //writing the image                                writer.setOutput(out);                                                                //adding the listener to the writer                                writer.addIIOWriteProgressListener(new IIOWriteProgressListener() {                                                                        public void imageComplete(ImageWriter wr) {                                                                                writer.removeIIOWriteProgressListener(this);                                        progressBar.setVisible(false);                                    }                                                                        public void writeAborted(ImageWriter wr) {                                                                                writer.removeIIOWriteProgressListener(this);                                        progressBar.setVisible(false);                                    }                                                                        public void imageProgress(ImageWriter wr, float value) {                                        progressBar.setProgressBarValue(25+3*value/4, 0, 100);                                                                                if(progressBar.cancelAction()) {                                                                                        writer.abort();                                                                                        JOptionPane.showMessageDialog(  getSVGEditor().getParent(),                                                     messageexporterror, labelerror, JOptionPane.WARNING_MESSAGE);                                            }                                    }                                                                        public void imageStarted(ImageWriter wr, int arg1) {}                                                                        public void thumbnailComplete(ImageWriter wr) {}                                                                        public void thumbnailProgress(ImageWriter wr, float arg1) {}                                                                        public void thumbnailStarted(ImageWriter wr, int arg1, int arg2) {}                                });                                                                writer.write(null, iioImage, param);                                                                //cleaning up                                out.flush();                                writer.removeAllIIOWriteProgressListeners();                                progressBar.setVisible(false);                                writer.dispose();                                out.close();                                                            }catch (Exception ex){                                ex.printStackTrace();                                                                progressBar.setVisible(false);                                                                SwingUtilities.invokeLater(new Runnable() {                                                                        public void run() {                                                                                JOptionPane.showMessageDialog(  getSVGEditor().getParent(),                                                 messageexporterror, labelerror, JOptionPane.WARNING_MESSAGE);                                                                                    }                                });                                                                try{                                    //removing the file that had to be written                                    new File(new URI(fpath)).delete();                                }catch (Exception ex2) {}                            }                        }                    };                                    }                                break;                            case TIFF_FORMAT :                                res=tiffExportDialog.showExportDialog(frame);                                if(res==ExportDialog.OK_ACTION){                                        //initializing the progress bar and showing it                    progressBar.setIndeterminate(true, true);                    progressBar.setVisible(true);                                        final double width=tiffExportDialog.getExportSize().x, height=tiffExportDialog.getExportSize().y;                                        //creating the canvas that will be used to generate the pdf                    new ExportCanvas(frame.getScrollPane().getSVGCanvas().getDocument(), progressBar) {                                                protected void doWhenRenderingDone() {                                                        try{                                                                //creating the image that will be written                                BufferedImage wImage=new BufferedImage((int)width, (int)height, BufferedImage.TYPE_INT_RGB);                                

⌨️ 快捷键说明

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