我正在尝试使用BufferedImage.TYPE_USHORT_GRAY将16位灰度图像数据写入png。通常我会这样写图像:
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
然后:
image.setRGB(x,y,Color.getRGB);
设置像素,最后:
ImageIO.write(image, "png", new File(path + ".png"));
写到png图像。
但是现在我将其作为图像:
BufferedImage imageGray = new BufferedImage(width, height, BufferedImage.TYPE_USHORT_GRAY);
如何将像素保存为该格式?将setRGB()与16位整数一起使用似乎无效,当我打开保存的png文件时,我看到很多条带发生。
我尝试保存从0到65535的简单渐变,然后在灰度图像上使用setRGB(),然后在Photoshop中检查结果。我可以看到图像每256行由较小的渐变组成。我猜想setRGB()或imageIO无法正常工作。
有解决方法吗?imageIO是否甚至支持BufferedImage.TYPE_USHORT_GRAY格式?还是只能保存8位数据?如果它可以保存16位数据,我将如何保存像素数据,最好以setRGB()的方式工作(因此对于某个x,y坐标)?
正如PST已经在我的问题下面评论:
尝试直接使用栅格吗?
访问栅格直接解决了该问题。
问题内容: 如何在Python中转换和保存16位单通道TIF? 我可以加载没有问题的16位和32位图像,并看到32位图像是mode ,而16位图像是mode : 但是我在处理16位图像时遇到了麻烦。如果我想另存为PNG,则不能直接这样做: 如果转换32位图像,则可以保存它: 但是相同的命令不适用于16位图像: 问题答案: 对于从16位灰度TIFF到PNG的无损转换,请使用PythonMagick:
问题内容: 有没有人有一种方法可以在Python中导入每通道16位,3通道TIFF图像? 我还没有找到一种在处理TIFF格式时可以保留每个通道16位深度的方法。我希望一些乐于助人的人能够解决。 这是到目前为止我没有成功尝试过的结果以及结果的列表: 到目前为止,我发现的唯一解决方案是使用ImageMagick将图像转换为PNG。然后,沼泽标准会毫无问题地读取PNG文件。 我遇到的另一个问题是将任何n
网站部署上线后,还缺点啥呢? 在移动互联网浪潮席卷而来的今天,一个网站没有上线移动App,出门根本不好意思跟人打招呼。 所以,awesome-python-webapp必须得有一个移动App版本! 开发iPhone版本 我们首先来看看如何开发iPhone App。前置条件:一台Mac电脑,安装XCode和最新的iOS SDK。 在使用MVVM编写前端页面时,我们就能感受到,用REST API封装网
网站部署上线后,还缺点啥呢? 在移动互联网浪潮席卷而来的今天,一个网站没有上线移动App,出门根本不好意思跟人打招呼。 所以,awesome-python3-webapp必须得有一个移动App版本! 开发iPhone版本 我们首先来看看如何开发iPhone App。前置条件:一台Mac电脑,安装XCode和最新的iOS SDK。 在使用MVVM编写前端页面时,我们就能感受到,用REST API封装