【问题标题】:Java- how to resize an image by expanding a pixel diagonalyJava-如何通过对角扩展像素来调整图像大小
【发布时间】:2013-02-12 06:21:00
【问题描述】:
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import java.awt.image.WritableRaster;

public class drim {
   public static void drimage() {
      try {
         BufferedImage input =
            ImageIO.read( new File( "/root/project/de.jpg" ));
         int w = input.getWidth();
         int h = input.getHeight();
         int h1 = h * 2;
         int w1 = w * 2;
         BufferedImage im = new BufferedImage( w1, h1,
            BufferedImage.TYPE_BYTE_BINARY );
         WritableRaster raster = im.getRaster();
         for( int i = 0; i < w; i++ ) {
            for( int j = 0; j < h; j++ ) {
               int rgb = input.getRGB( i, j );
               if( rgb == -1 ) {
                  raster.setSample( i * 2, j * 2, 0, 1 );
                  raster.setSample( i * 2, ( j * 2 ) + 1, 0, 0 );
                  raster.setSample( ( i * 2 ) + 1, j * 2, 0, 0 );
                  raster.setSample( ( i * 2 ) + 1, ( j * 2 ) + 1, 0, 1 );
               } else {
                  raster.setSample( i * 2, j * 2, 0, 0 );
                  raster.setSample( i * 2, ( j * 2 ) + 1, 0, 1 );
                  raster.setSample( ( i * 2 ) + 1, j * 2, 0, 1 );
                  raster.setSample( ( i * 2 ) + 1, ( j * 2 ) + 1, 0, 0 );
               }
            }
         }
         ImageIO.write( im, "JPG", new File( "/root/project/dde.jpg" ) );
      }
      catch( Exception e )
      {
         e.printStackTrace();
      }
   }

   public static void main( String[] args ) throws IOException {
      drimage();
   }
}

上面给出的是一个java代码,通过用一组4个像素替换每个像素来调整图像大小,保持组中的对角线像素与原始图像中的颜色相同。我们考虑的图像是二进制图像黑色和白色的颜色。 但现在的问题是如何从调整大小的图像中检索原始图像。 请帮助我们。

【问题讨论】:

  • 为什么要这么麻烦?如果您以后需要原件,请在获得时保存一份副本。

标签: java image resize scale pixel


【解决方案1】:

您可能希望查看 ImageMagick 来为您调整大小。您需要在您的服务器上安装 ImageMagick pkg,因为 IM4Java API 只是从您的 Java 程序中为您进行命令行调用。

http://im4java.sourceforge.net/ - Java API/开发者指南等
http://www.imagemagick.org/script/command-line-options.php#resize - imagemagick 应用教程

如果您不喜欢 imagemagick,还有其他图像处理 API,但我无法评论它们,因为我以前没有使用过它们。

【讨论】:

猜你喜欢
  • 2020-05-10
  • 2016-07-28
  • 1970-01-01
  • 2014-08-01
  • 2014-07-15
  • 1970-01-01
  • 2013-07-04
  • 2012-12-18
  • 1970-01-01
相关资源
最近更新 更多