zoukankan      html  css  js  c++  java
  • 彩色照片转换为黑白照片(Color image converted to black and white picture)

    This blog will be talking about the color image converted to black and white picture.

    The project structure as follow:

    The run result:

    ==========================================================

    source code:

    ==========================================================

    /UUUU_Test/src/com/b510/image/clent/Client.java

     1 /**
     2  * 
     3  */
     4 package com.b510.image.clent;
     5 
     6 import java.io.File;
     7 
     8 import com.b510.image.common.Common;
     9 import com.b510.image.util.ImageUtil;
    10 
    11 /**
    12  * @author Hongten
    13  * @create 2014-7-13
    14  * @mail hongtenzone@foxmail.com
    15  */
    16 public class Client {
    17 
    18     public static void main(String[] args) {
    19         File input = new File(Common.ORGINAL_IMAGE);
    20         File out = new File(Common.PROCESSED_IMAGE);
    21         ImageUtil.changeImge(input, out);
    22     }
    23 }

    /UUUU_Test/src/com/b510/image/common/Common.java

     1 /**
     2  * 
     3  */
     4 package com.b510.image.common;
     5 
     6 /**
     7  * @author Hongten
     8  * @create 2014-7-13
     9  * @mail hongtenzone@foxmail.com
    10  */
    11 public class Common {
    12 
    13     // Orginal image path
    14     public static String ORGINAL_IMAGE = "src/com/b510/image/resources/orginal_image.jpg";
    15     // Processed image path
    16     public static String PROCESSED_IMAGE = "src/com/b510/image/resources/processed_image.jpg";
    17 
    18     public static String PROCESS_SUCCESS = "Processed successfully.....";
    19     public static String PROCESS_ERROR = "Processing encounters error!";
    20 }

    /UUUU_Test/src/com/b510/image/util/ImageUtil.java

     1 /**
     2  * 
     3  */
     4 package com.b510.image.util;
     5 
     6 import java.awt.Image;
     7 import java.awt.color.ColorSpace;
     8 import java.awt.image.BufferedImage;
     9 import java.awt.image.ColorConvertOp;
    10 import java.io.File;
    11 import java.io.FileOutputStream;
    12 import java.io.IOException;
    13 
    14 import javax.imageio.ImageIO;
    15 
    16 import com.b510.image.common.Common;
    17 import com.sun.image.codec.jpeg.JPEGCodec;
    18 import com.sun.image.codec.jpeg.JPEGImageEncoder;
    19 
    20 /**
    21  * @author Hongten
    22  * @create 2014-7-13
    23  * @mail hongtenzone@foxmail.com
    24  */
    25 public class ImageUtil {
    26     /**
    27      * Color image is converted to black and white picture.
    28      */
    29     public static void changeImge(File input, File out) {
    30         try {
    31             Image image = ImageIO.read(input);
    32             int srcH = image.getHeight(null);
    33             int srcW = image.getWidth(null);
    34             BufferedImage bufferedImage = new BufferedImage(srcW, srcH, BufferedImage.TYPE_3BYTE_BGR);
    35             bufferedImage.getGraphics().drawImage(image, 0, 0, srcW, srcH, null);
    36             bufferedImage = new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY), null).filter(bufferedImage, null);
    37             FileOutputStream fos = new FileOutputStream(out);
    38             JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fos);
    39             encoder.encode(bufferedImage);
    40             fos.close();
    41             System.out.println(Common.PROCESS_SUCCESS);
    42         } catch (IOException e) {
    43             e.printStackTrace();
    44             throw new IllegalStateException(Common.PROCESS_ERROR, e);
    45         }
    46     }
    47 
    48 }

    ========================================================

    More reading,and english is important.

    I'm Hongten

     

    大哥哥大姐姐,觉得有用打赏点哦!多多少少没关系,一分也是对我的支持和鼓励。谢谢。
    Hongten博客排名在100名以内。粉丝过千。
    Hongten出品,必是精品。

    E | hongtenzone@foxmail.com  B | http://www.cnblogs.com/hongten

    ========================================================

  • 相关阅读:
    JAVA中内存分配策略里的堆与栈
    Java中间件:淘宝网系统高性能利器
    优化Java堆大小的五个技巧
    Java编程程序异常处理方法
    Java内存管理的九个小技巧
    c++ 函数模板
    c setsockopt设置套接字状态
    c++ typedef 类型重定义语句
    c getaddrinfo函数
    c iovec结构体 readv writev
  • 原文地址:https://www.cnblogs.com/hongten/p/hongten_color_image_black_and_white_pic.html
Copyright © 2011-2022 走看看