以像素为单位获取图像宽度和高度

时间:2011-06-16 03:25:41

标签: eclipse image height width pixel

所以我看了几个像这样的问题,从我看到的答案似乎都没有回答我的问题。我创建了一个创建ASCII艺术的程序,它基本上是文本而不是颜色的图片。我必须手动设置像素的宽度和高度时设置程序的方式。如果像素的宽度和高度太大,它根本不会工作。所以基本上我想做的是有一个功能来自动设置宽度和高度到图片的大小。 http://www.mediafire.com/?3nb8jfb8bhj8d现在是该计划的链接。我查看了像素抓取器,但构造函数方法都需要一系列像素。我还有另一个文件夹,http://www.mediafire.com/?2u7qt21xhbwtp


另一方面,这个程序非常低效,我知道它在grayscaleValue()方法中是低效的,但我不知道是否有更好的方法来做到这一点。关于这个计划的任何建议也都很棒。提前致谢! (这个程序都是在日食上完成的)

1 个答案:

答案 0 :(得分:0)

将图像读入BufferedImage后,可以在其上调用getWidth()和getHeight()以动态获取此信息。请参阅JavaDocs。此外,使用GetPixelColor的构造函数一劳永逸地创建BufferedImage。这将避免为每个像素的每个通道从磁盘读取整个文件。

要进一步清理代码,请将一系列if语句更改为switch结构,或将索引更改为数组,无论哪种更自然。有关开关构造的说明,请参阅this

最后一条评论:在逻辑上表示对象状态的类中的任何内容都应声明为非静态。例如,如果您想要并排渲染两个图像,则需要创建实例(如果是GetPixelColor),并且每个图像都应具有自己的高度和宽度属性。由于它们当前被声明为静态,因此每个实例将共享相同的数据,这显然不是理想的行为。