图片处理(Picture Lab)活动3:探索图片

陈 欣发布

运行PictureExplorer.java中的main method。这会从文件中读取一幅海滩的图片并创建其在内存的副本,在图片探索工具里显示出来。创建副本为的是更加方便的浏览图片,不论图片本身在这个过程中是否受到任何改动。你可以使用这一工具来探索图片中的像素。单击图片的任意位置(像素),窗口里就会立即显示出行列坐标和该位置的红绿蓝颜色值。于此同时这一位置会被一个小十字所标示。你还可以使用箭头按钮或者直接输入坐标并回车来改变位置。可以使用Zoom菜单来进行缩放。

问题

  1. 图片最左上角的行坐标是什么?
  2. 图片最左上角的列坐标是什么?
  3. 图片的宽度是640,最右侧的列坐标是什么?
  4. 图片的高度是480,最底侧的行坐标是什么?
  5. 行坐标如何增加?
  6. 列坐标如何增加?
  7. 把缩放设为500%。你是否能看到色块?这被称作像素化(pixelation)。像素化意味着将图片放大到足够的比例,以至于不得不把单个像素以小方块的形式显示出来。

新建并探索其他图片

以下是class PictureExplorermain method。Java的每个class都可以有自己的main method,可以用java加上class名来执行它。

public static void main(String args[])
{
  Picture pix = new Picture("beach.jpg");
  pix.explore();
}

main method里定义了一个名为pixPicture object,将其值指向images目录里一个名为beach.jpg的JPEG图像文件。JPEG图像文件使用国际通行的有损压缩(lossy compression)算法来储存图片。有损压缩意味着占用的空间远比原本数据要小,但是会舍去一些一般情况下可以被忽略的信息。

练习

  1. 修改class PictureExplorermain method,新建并探索images目录里的另一幅图片。
  2. 将图片复制到images目录中,使用main method来探索它。如果图片过大,可以使用class Picturescale method来缩小它。
    例如,你可以创建一幅更小的新图片(images目录中的smallMyPicture.jpg),仅有原始图片(myPicture.jpg)的四分之一:
Picture p = new Picture("myPicture.jpg");
Picture smallP = p.scale(0.25,0.25);
smallP.write("smallMyPicture.jpg");

陈 欣

AADPS创始人

0 条评论

发表回复