<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    void

    JMagick示例

    JMagickTest.java 實現圖片的各種操作示例,如旋轉,加邊框,設置背景,提升質量,加蓋文字說明等等...

    package images;
    import java.awt.Dimension;
    import java.awt.Rectangle;
    import magick.ImageInfo;
    import magick.MagickImage;
    import magick.MagickException;
    import magick.QuantizeInfo;
    import magick.ColorspaceType;
    import magick.MagickApiException;
    import magick.PixelPacket;
    import magick.DrawInfo;
    import magick.ResolutionType;
    import magick.ProfileInfo;
    import magick.MontageInfo;
    import magick.Magick;
    import magick.MagickInfo;
    import java.io.IOException;
    import java.io.FileOutputStream;
    /**
    * For testing JMagick functions.
    *
    @author Eric Yeo
    */
    public class JMagickTest {
        
    /**
         * Display the information about the profile supplied.
         *
         * 
    @param profile
         *            the profile for which to display
         
    */
        
    private static void displayProfile(ProfileInfo profile) {
            
    if (profile.getName() == null) {
                System.out.println(
    "Profile name is null");
            }
            
    else {
                System.out.println(
    "Profile name is " + profile.getName());
            }
            
    if (profile.getInfo() == null) {
                System.out.println(
    "No profile info");
            }
            
    else {
                System.out.println(
    "Profile length is " + profile.getInfo().length);
            }
        }
        
    public static void main(String[] args) {
            
    try {
                Rectangle rect 
    = new Rectangle(008040);
                
    int flags = Magick.parseImageGeometry("60x50", rect);
                System.out.println(
    "Scaled to " + rect.width + "x" + rect.height);
                
    // Copy an image.
                ImageInfo info = new ImageInfo("pics.jpg");
                info.setPage(
    "50x50+0+0");
                info.setUnits(ResolutionType.PixelsPerInchResolution);
                info.setColorspace(ColorspaceType.RGBColorspace);
                info.setBorderColor(PixelPacket.queryColorDatabase(
    "red"));
                info.setDepth(
    8);
                System.out.println(
    "Depth "+info.getDepth());
                info.setDepth(
    0);
                MagickImage image 
    = new MagickImage(info);
                image.setImageAttribute(
    "Comment""Processed by JMagick");
                System.out.println(
    "Quality is "+image.getQuality());
                System.out.println(
    "Colorspace is " + image.getColorspace());
                System.out.println(
    "Resolution units is " + image.getUnits());
                System.out.println(
    "X resolution is " + image.getXResolution());
                System.out.println(
    "Y resolution is " + image.getYResolution());
                System.out.println(
    "Size blob is " + image.sizeBlob());
                System.out.println(
    "Colors " + image.getColors());
                System.out.println(
    "Total colors " + image.getTotalColors());
                System.out.println(
    "Depth is "+image.getDepth());
                image.signatureImage();
                image.setFileName(
    "copy.jpg");
                image.writeImage(info);
                
    // Background Color
                System.out.println("Old colour " + image.getBackgroundColor());
                image.setBackgroundColor(PixelPacket.queryColorDatabase(
    "red"));
                System.out.println(
    "New colour " + image.getBackgroundColor());
                
    // Border image
                image.setBorderColor(PixelPacket.queryColorDatabase("green"));
                MagickImage borderedImage 
    = image.borderImage(new Rectangle(00,
                        
    1020));
                borderedImage.setFileName(
    "border.jpg");
                borderedImage.writeImage(info);
                
    // Raise image
                MagickImage raisedImage = new MagickImage(new ImageInfo("pics.jpg"));
                raisedImage.raiseImage(
    new Rectangle(001020), true);
                raisedImage.setFileName(
    "raised.jpg");
                raisedImage.writeImage(info);
                
    // Profile test
                System.out.println("Number of generic profiles "
                        
    + image.getGenericProfileCount());
                displayProfile(image.getColorProfile());
                image.setColorProfile(
    new ProfileInfo());
                displayProfile(image.getColorProfile());
                image.setColorProfile(
    new ProfileInfo("Test"new byte[20]));
                displayProfile(image.getColorProfile());
                
    // Montage test
                MagickImage images[] = new MagickImage[2];
                images[
    0= image;
                images[
    1= image;
                MagickImage seqImage 
    = new MagickImage(images);
                MontageInfo montageInfo 
    = new MontageInfo(new ImageInfo());
                montageInfo.setFileName(
    "montage.jpg");
                montageInfo.setTitle(
    "Melbourne");
                montageInfo.setBorderWidth(
    5);
                MagickImage montage 
    = seqImage.montageImages(montageInfo);
                montage.writeImage(
    new ImageInfo());
               
                
    // Converting the montage into a blob
                montage.setMagick("JPG");
                
    byte[] mblob = montage.imageToBlob(new ImageInfo());
                System.out.println(
    "Length "+mblob.length);
                
    // Test average
                MagickImage average = seqImage.averageImages();
                average.setFileName(
    "average.jpg");
                average.writeImage(
    new ImageInfo());
                
    // Image to blob
                info = new ImageInfo();
                
    byte[] blob = image.imageToBlob(info);
                
    // Blob to image
                info = new ImageInfo();
                MagickImage blobImage 
    = new MagickImage(info, blob);
                Dimension imageDim 
    = blobImage.getDimension();
                System.out.println(
    "Blob width is " + imageDim.width);
                System.out.println(
    "Blob heght is " + imageDim.height);
                System.out.println(imageDim);
                blobImage.setFileName(
    "blob.jpg");
                blobImage.writeImage(info);
                
    // JPEG Image to GIF blob
                image.setMagick("GIF");
                blob 
    = image.imageToBlob(info);
                
    try {
                    FileOutputStream out 
    = new FileOutputStream("blob.gif");
                    out.write(blob);
                    out.close();
                }
                
    catch (IOException ex) {
                    System.out.println(
    "Unable to write blob to file: " + ex);
                }
                
    // Rotation and shear
                image = new MagickImage(new ImageInfo("pics.jpg"));
                MagickImage rotated 
    = image.rotateImage(45.0);
                rotated.setFileName(
    "rotated.jpg");
                rotated.writeImage(info);
                MagickImage sheared 
    = image.shearImage(50.010.0);
                sheared.setFileName(
    "sheared.jpg");
                sheared.writeImage(info);
                MagickImage scaled 
    = image.scaleImage(10080);
                scaled.setFileName(
    "scaled.jpg");
                scaled.writeImage(info);
                
    // Cloning
                imageDim = image.getDimension();
                System.out.println(
    "Width is " + imageDim.width);
                System.out.println(
    "Height is " + imageDim.height);
                System.out.println(
    "Depth is " + image.getDepth());
                System.out.println(
    "Storage class is " + image.getStorageClass());
                System.out.println(
    "Comment is \""
                        + image.getImageAttribute("Comment"+ "\"");
                MagickImage clonedImage = image.cloneImage(00false);
                clonedImage.setFileName(
    "clone.jpg");
                clonedImage.writeImage(info);
                
    // Quantization
                MagickImage quantizedImage = new MagickImage(new ImageInfo(
                        
    "pics.jpg"));
                QuantizeInfo quantizeInfo 
    = new QuantizeInfo();
                quantizeInfo.setColorspace(ColorspaceType.GRAYColorspace);
                quantizeInfo.setNumberColors(
    256);
                quantizeInfo.setTreeDepth(
    4);
                System.out.println(
    "QuantizeImage "
                        
    + quantizedImage.quantizeImage(quantizeInfo));
                System.out.println(
    "Colors " + quantizedImage.getColors());
                System.out.println(
    "Total colors "
                        
    + quantizedImage.getTotalColors());
                quantizedImage.setFileName(
    "quantized.png");
                quantizedImage.writeImage(info);
                // for (int i = 0; i < quantizedImage.getColors(); i++) {
                // PixelPacket pp = quantizedImage.getColormap(i);
                // System.out.println("Colormap[" + i + "] = (" + pp.getRed()
                // + ", " + pp.getGreen() + ", " + pp.getBlue() + ")");
                // }
                // PixelPacket[] ppArray = quantizedImage.getColormap();
                // for (int i = 0; i < quantizedImage.getColors(); i++) {
                // System.out.println("Colormap2[" + i + "] = ("
                // + ppArray[i].getRed() + ", " + ppArray[i].getGreen()
                // + ", " + ppArray[i].getBlue() + ")");
                // }
                
    // Create an image from scratch
                MagickImage blankImage = new MagickImage();
                
    byte[] pixels = new byte[200 * 100 * 4];
                
    for (int i = 0; i < 200 * 100; i++) {
                    pixels[
    4 * i] = (byte255;
                    pixels[
    4 * i + 1= (byte255;
                    pixels[
    4 * i + 2= (byte255;
                    pixels[
    4 * i + 3= (byte0;
                }
                blankImage.constituteImage(
    200100"RGBA", pixels);
                
    // Put a red rectangle around the border
                DrawInfo drawInfo = new DrawInfo(new ImageInfo());
                drawInfo.setPrimitive(
    "Rectangle 10 10 190 90");
                drawInfo.setStroke(PixelPacket.queryColorDatabase(
    "red"));
                drawInfo.setFill(PixelPacket.queryColorDatabase(
    "white"));
                blankImage.drawImage(drawInfo);
                
    // Annotate the image with a green Hello
                ImageInfo blankImageInfo = new ImageInfo();
                DrawInfo annotateInfo 
    = new DrawInfo(blankImageInfo);
                annotateInfo.setOpacity(
    0);
                annotateInfo.setFont(
    "fixed");
                annotateInfo.setFill(PixelPacket.queryColorDatabase(
    "green"));
                annotateInfo.setText(
    "Hello");
                annotateInfo.setGeometry(
    "+30+30");
                blankImage.annotateImage(annotateInfo);
                blankImage.setFileName(
    "blank.jpg");
                blankImage.writeImage(info);
                
    // Make the white page of the image transparent
                blankImage.transparentImage(
                        PixelPacket.queryColorDatabase(
    "white"), 65535);
                blankImage.setFileName(
    "transparent.png");
                blankImage.writeImage(info);
                
    // Crop image
                rect = new Rectangle(2020150120);
                MagickImage cropped 
    = image.cropImage(rect);
                cropped.setFileName(
    "cropped.jpg");
                cropped.writeImage(info);
                
    // Chop image
                rect = new Rectangle(00150120);
                MagickImage chopped 
    = image.chopImage(rect);
                chopped.setFileName(
    "chopped.jpg");
                chopped.writeImage(info);
                
    // Sharpen image
                MagickImage sharpened = image.sharpenImage(1.05.0);
                sharpened.setFileName(
    "sharpened.jpg");
                sharpened.writeImage(info);
                
    // Despeckle image
                MagickImage despeckled = image.despeckleImage();
                despeckled.setFileName(
    "despeckled.jpg");
                despeckled.writeImage(info);
                
    // Convolve image
                double[] kernel = new double[9];
                
    for (int i = 0; i < 9; i++) {
                    kernel[i] 
    = 1.0;
                }
                kernel[
    4= 2.0;
                MagickImage convolvedImage 
    = image.convolveImage(3, kernel);
                convolvedImage.setFileName(
    "convolved.jpg");
                convolvedImage.writeImage(info);
                
    // Finally display the image.
                MagickWindow window = new MagickWindow(image);
                window.setVisible(
    true);
                
    // MagickInfo test
                MagickInfo minfo = new MagickInfo("JPEG");
                System.out.println(
    "JPG description: " + minfo.getDescription());
            }
            
    catch (MagickApiException ex) {
                System.err.println(
    "MagickException: " + ex + "" + ex.getReason()
                        
    + "" + ex.getDescription());
            }
            
    catch (MagickException ex) {
                System.err.println(
    "MagickException: " + ex);
            }
        }
    }






    MagickWindow.java 在java.awt組件中顯示

    package images;
    import java.awt.Dimension;
    import java.awt.Frame;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import magick.MagickImage;
    import magick.util.MagickViewer;
    /**
    * This class implements a window that displays a MagickImage.
    *
    @author Eric Yeo
    */
    public class MagickWindow extends Frame {
        
    /**
         * A listener that exits the application when we receive
         * the window closing event.
         
    */
        
    private final class MyListener extends WindowAdapter {
            /**
            * This method is called when the window closes.
            */
            public void windowClosing(WindowEvent event) {
                 System.exit(0);
            }
        }
        
    /**
         * We want the window size to be this big.
         
    */
        
    public Dimension getPreferredSize() {
            return new Dimension(250200);
        }
        
    /**
         * We want the window size to be at this minimum.
         
    */
        
    public Dimension getMinimumSize() {
            return new Dimension(300200);
        }

        
    /**
         * Constructor.
         
    */
        
    public MagickWindow(MagickImage image)
        {
            setResizable(true);
            addWindowListener(new MyListener());
            MagickViewer imageViewer = new MagickViewer();
            add(imageViewer, "Center");

            setTitle("Magick Window");
            pack();
            imageViewer.setImage(image);
        }
    }

     

    posted on 2008-07-19 12:15 void 閱讀(1405) 評論(2)  編輯  收藏 所屬分類: Jmagick

    Feedback

    # re: JMagick示例 2010-06-18 11:24 lacewigs

    really enjoyed the quality information you offer to your visitors. Thanks  回復  更多評論   

    # re: JMagick示例[未登錄] 2011-09-16 12:00 胡波

    請問 我旋轉圖片后 設置圖片背景為透明 結果圖片邊緣有鋸齒效果..請問怎么解決  回復  更多評論   

    主站蜘蛛池模板: 国产亚洲精品VA片在线播放| 一级毛片免费观看不卡的| 久青草视频在线观看免费| A在线观看免费网站大全| 亚洲乱亚洲乱妇无码麻豆| 亚洲AV无码一区二区三区鸳鸯影院| 免费无码av片在线观看| 亚洲国产成人精品女人久久久 | 国产亚洲精品久久久久秋霞| 国产精品亚洲一区二区在线观看| 亚洲国产一区视频| WWW国产成人免费观看视频| 国产一区视频在线免费观看 | 色爽黄1000部免费软件下载| 蜜桃视频在线观看免费网址入口| 78成人精品电影在线播放日韩精品电影一区亚洲| 免费一级毛片在线播放放视频| 日韩免费三级电影| 亚洲 欧洲 日韩 综合在线| 亚洲欧洲中文日韩久久AV乱码| **俄罗斯毛片免费| 久久国产亚洲精品无码| 95免费观看体验区视频| 亚洲精品高清国产麻豆专区| 在线成人爽a毛片免费软件| 春暖花开亚洲性无区一区二区| 亚洲AV无码成人精品区天堂| 最近中文字幕大全中文字幕免费 | 国产猛男猛女超爽免费视频| 亚洲国产第一页www| 免费人成在线观看69式小视频| 亚洲精品美女视频| 色久悠悠婷婷综合在线亚洲| 免费羞羞视频网站| 日本高清不卡中文字幕免费| 亚洲人成网站日本片| 国产精品成人四虎免费视频| 人成电影网在线观看免费| 亚洲最大av资源站无码av网址| 免费久久精品国产片香蕉| 日本高清不卡aⅴ免费网站|