【问题标题】:Writing java program about RGB-CMY编写关于RGB-CMY的java程序
【发布时间】:2011-04-29 12:11:44
【问题描述】:

您将如何编写一个将 RGB 转换为 CMY 的简单 Java 程序?...或者您可以给我一些关于如何编写它的提示?

【问题讨论】:

标签: java


【解决方案1】:

RGB 到/从 CMY

从RGB转换为CMY简单如下

C = 1 - R
M = 1 - G
Y = 1 - B

更多信息请参考以下内容

http://paulbourke.net/texture_colour/convert/

【讨论】:

    【解决方案2】:

    会添加

       CYAN - 1 = RED
       MAGENTA - 1 = GREEN
       YELLOW - 1 = BLUE
    

    遗嘱

    从 rgb 交易

    RED - 1 = CYAN
    GREEN - 1 = MAGENTA
    BLUE - 1 = CYAN
    

    【讨论】:

      【解决方案3】:

      我也想转换一张指定图片,这是给定的。我知道我可以从 RGB 计算 CMY 值。我正在逐像素读取给定的图片(RGB 颜色空间中的内容),将其计算为 CMY,然后将其保存为 CMY 图片。

      这是我的 Java 代码:

      import java.awt.Color;
      import java.awt.color.ColorSpace;
      import java.awt.image.BufferedImage;
      import java.io.File;
      import java.io.IOException;
      
      import javax.imageio.ImageIO;
      
      public class Aufgabe2c {
      
          public static void main(String[] args) {
              try {
                  BufferedImage image = ImageIO.read(new File("blumen.bmp"));
                  iterateThroughImageToGetPixel(image);
      
              } catch (IOException e) {
                  e.printStackTrace();
              }
      
          }
          public static void iterateThroughImageToGetPixel(BufferedImage image) {
              int width = image.getWidth();
              int height = image.getHeight();
              System.out.println("width, height: " + width + ", " + height);
      
              for (int i = 0; i < height; i++) {
                  for (int j = 0; j < width; j++) {
                      System.out.println("x,y: " + j + ", " + i);
                      int pixel = image.getRGB(j, i);
                      getPixelARGB(pixel);
                      System.out.println("");
                  }
              }
          }
          /*
           * Quelle: https://alvinalexander.com/blog/post/java/getting-rgb-values-for-each-pixel-in-image-using-java-bufferedi
           *         http://openbook.rheinwerk-verlag.de/javainsel9/javainsel_20_006.htm#mj4c12381d5bacf8fb6ee31448d26890bb
           */
          public static void getPixelARGB(int pixel) {
              int alpha = (pixel >> 24) & 0xff;
              int red = (pixel >> 16) & 0xff;
              int green = (pixel >> 8) & 0xff;
              int blue = (pixel) & 0xff;
              convertRGBToCMY(red, green, blue);
              System.out.println("argb: " + alpha + ", " + red + ", " + green + ", " + blue);
          }
      
          public static void convertRGBToCMY(int red, int green, int blue) {
              int[] cmyArray = new int[3];
      
              //cyan
              cmyArray[0] = 255 - red;
              //magenta
              cmyArray[1] = 255 - green;
              //yellow
              cmyArray[3] = 255 - blue;
      
              Color col = new Color(new ColorSpace(), components, alpha)
      //          BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
      //          ImageIO.write(image, "bmp", new File("blumen_cym.bmp") ); // Save as BMP
      //          System.out.println("argb: "+ red + ", " + green + ", " + blue);
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-25
        • 1970-01-01
        • 2013-03-30
        • 2021-08-10
        • 1970-01-01
        • 2011-07-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多