qvplay 和 Casio QV-10 相机

作者:Bob Hepple

在与邪恶帝国的持续战斗中,我最近减少了一个程序对“他们”的依赖——我发现了一种在 Linux 下使用我的 Casio QV-10 数码相机的方法。

本文是一个关于我使用的方法的简单 HOWTO 指南——希望能鼓励更多的人和卡西欧使用 Linux。

总有一天,每个外围设备都会附带 Linux 驱动程序和支持软件——在那之前,让我们“分享与享受!”(道格拉斯·亚当斯,《银河系漫游指南》)。

Casio QV-10 相机
qvplay and the Casio QV-10 Camera

图 1. 卡西欧相机

关于相机的完整描述最好留给卡西欧,但这里只需说明它

  • 具有固定焦距镜头(无变焦)

  • 具有 320x240 像素,24 位色彩的固定分辨率

  • 在闪存中存储多达 96 张照片(不受电池电量低的影响)

  • 使用 4 节 AA 碱性电池或可选的外部电源,但不使用镍镉电池

  • 具有到 PC 的串行链路

  • 具有单独的打印机,由相机直接驱动

  • 也可以输出到电视/视频

  • 具有 CAM 默认文件格式,卡西欧专有

  • 在新加坡售价约为 400 美元(约合 263 美元),虽然我去年圣诞节支付的价格远高于此——价格已经下降。

图片的分辨率对于简单的网页来说是足够的,但远不如最近市场上出现的一些型号那样精细。相比之下,从 35 毫米幻灯片或胶片数字化的柯达 PhotoCD 图像约为 3000x2500 像素——是像素数量的 100 多倍。另一方面,虽然分辨率一般,但生成的 320x240 jpeg 文件使用当前的调制解调器下载速度相当快。

卡西欧的专有 CAM 格式很可能在某些用途上优于其他格式(我不是图形专家),但它不适用于需要 JPEG 或 GIF 文件的网页。卡西欧提供的 Windows 软件使得将多个文件转换为 JPEG 格式非常困难。没有提供用于批量转换文件为其他格式的过滤器。每次转换的过程是

  1. 在 PC 上打开 CAM 图像(在我的 486 上需要 10 秒)

  2. 下拉“文件|导出”菜单或按 ctrl-E

  3. 下拉“格式|JPG”

  4. 输入新文件名(自动提供 .jpg 扩展名)

  5. 选择“确定”

对于一个文件,这是可以接受的,但是对于 96 个文件——算了吧。

qvplay 软件

qvplay 由 ken-ichi HAYASHI 和 Jun-ichiro “itojun” ITOH 编写,用于控制 QV-10,非常棒。Itojun 还编写了一个名为 cam2jpeg 的过滤器,用于将 CAM 文件转换为 JPEG。(我还没有测试过这个程序。)在 Linux 上运行 qvplay,您可以

  • 以 JPEG、BMP、PPM、RGB 或 CAM 格式从相机下载或上传单个或成组的照片。

  • 指示相机拍照。

  • 从相机内存中删除照片。

  • 指示相机显示特定照片(或 4 张或 9 张缩略图)。

  • 保护或取消保护特定照片免遭删除。

在我看来,qvplay 拍摄的照片质量比相机附带的 QV-LINK 软件更好——显然,一些旧版本的 QV-LINK 对照片进行了一些自动修饰,这似乎使情况变得更糟。软件包中还包含两个实用程序

  • qvrec:将 CAM 文件发送到 QV-10 相机。

  • qvalldel:清除相机内存。

软件

我使用了 0.92 版本的 qvplay。只需使用您喜欢的搜索引擎找到 qvplay-0_92_tar.gz 并从离您最近的站点下载。

配置再简单不过了。展开分发文件并按照说明进行操作。提供了一个 setup 脚本,它可以“开箱即用”。我使用 Red Hat Linux 4.1 和 2.0.18 内核。您可能想要修改的一件事是 qvplay 要使用的默认串行端口。我将提供的默认值 /dev/cua1 更改为 /dev/cua0。一旦它工作了,就在可执行文件上使用 strip 来删除不必要的行,例如调试命令,并运行命令 make install

我为 qvplayqvrecqvalldel 软件编写了 man 页面(不在原始分发包中)。这些页面可在 http://home.pacific.net.sg/~bhepple/qvplay/qvplay.html 获取。

qvplay 支持的相机

根据源代码,qvplay 似乎支持以下相机

  • QV-10 的各种型号,例如 QV-10a

  • QV-11

  • QV-30

  • QV-100(包括精细分辨率)

  • QV-300(包括精细分辨率)

我唯一测试过的相机是 QV-10。

qvplay 的实用脚本

一旦我掌握了 qvplay,我就将其封装在几个简单的脚本中,以执行我通常执行的操作,而无需阅读手册页。这两个脚本是

  1. get_a_pic:一个获取一张照片的简单脚本。(请参阅 列表 1。)

  2. get_all_pics:另一种从相机获取所有照片的方法。(请参阅 列表 2。)

JPEG 文件的后期处理

您必须做的一件奇怪的事情是修复 JPEG 图像的大小(请参阅 get_a_pic 脚本)。我必须承认我没有完全理解这里发生了什么,但显然图像以 480x240 像素的形式出现,您必须将它们更改为 4:3 的宽高比或 320x240 像素。您可以使用 xv 程序或使用 Independent JPEG Group 的命令 djpegcjpeg,以及 Poskanzer portable bitmap utilities。这些实用程序通常在各种 Linux 发行版中找到。例如

qvplay -g 1 | djpeg | pnmscale -xsize 320\
        -ysize 240 | cjpeg > foobar.jpg
使用 WWW 浏览器查看文件

您可以使用 xv(1) 或 WWW 浏览器(例如 Netscape)很好地查看您的 JPEG 文件。在后一种情况下,您可能需要为您的照片生成 HTML 索引文件,使用如下的自动过程。

假设您的 JPEG 文件位于一个目录中——例如,我将一天拍摄的所有文件放在一个以日期标记的目录下,例如 ~/photos/971128/*.jpg——然后我在它们上运行以下脚本来创建一个可供浏览器查看的索引页。这可以放入 Makefile 中

(cat hdr
ls $i*.jpg |sed "s/^/<IMG SRC=\"/" |sed
"s/$/\">/"
cat tlr) > index.html

文件 hdr 仅包含标准的 HTML 启动代码

<HTML>
<HEAD>
  <TITLE>Photo viewer</TITLE>
  <META NAME="Author" CONTENT="Bob Hepple">
</HEAD>
<BODY>
<H1>Photo viewer</H1><HR>
同样,文件 tlr 包含您的标准 HTML 结束脚本
<P>
<HR>
<ADDRESS>
<A HREF="mailto:bhepple@pacific.net.sg">Bob
Hepple</A> <P> Copyright © 1997 Bob
 Hepple. All rights reserved.
</ADDRESS>
</BODY>
</HTML>
qvplay 的图形用户界面

qvplaytk 是 qvplay 的 Tcl/Tk 封装器,提供 GUI 界面。图 2 是该程序的屏幕截图,可以在其作者(Amano 先生)的主页 http://www.bekkoame.or.jp/~tormato/qvplayk.htm 找到。

qvplay and the Casio QV-10 Camera

图 2. qvplaytk 的屏幕截图

作为 Tcl/Tk 脚本,qvplaytk 非常容易配置和调整。例如,您可能希望将晦涩难懂的“G”、“S”和“T”按钮更改为“Get”、“Save”和“Take”。

qvplaytk 的一个非常好的功能是“Take”模式允许您每 N 秒拍摄一张照片——这可以用于远程监控应用程序。也许它可以用于那些奇怪的网站之一,这些网站提供厨房咖啡液位的变化视图,或者用于监视隔壁房间的孩子。

除了 qvplay,qvplaytk 还需要 Tcl 7.4 和 Tk 4.0 或 Tcl 7.5 和 Tk 4.1。它还依赖于 xv 进行查看功能。

将卡西欧 CAM 文件转换为 JPEG 或 PPM

Itojun 编写了 cam2jpeg(有时写为 camtojpeg)作为过滤器,用于批量将 CAM 文件转换为 JPEG 或 PPM 格式。它适用于输出 CAM 格式的各种卡西欧产品,例如 QV-10、10A、30 和 100。也可以通过 ken-ichi HAYASHI 的主页 http://www.asahi-net.or.jp/~xg2k-hys/ 找到它。

qvplay and the Casio QV-10 Camera

图 3. 新加坡河

qvplay and the Casio QV-10 Camera

图 4. 老巴刹美食中心

示例图片

如图 3 所示,在充足的日光下,相机工作良好,这是从著名的“驳船码头”拍摄的新加坡河照片。如图 4 所示,在非常低的光照条件下,相机也能很好地工作,这是我们美妙的美食中心之一“老巴刹”的照片,位于商业区。

qvplay and the Casio QV-10 Camera
Bob Hepple 自 1981 年以来一直在各种借口下研究 Unix,并且至少在一段时间内因此获得了报酬。这使他能够追求另一个兴趣——居住在温暖、充满异国情调的地方,包括香港、澳大利亚、卡塔尔、沙特阿拉伯、莱索托和(目前)新加坡。他对寒冷的最初厌恶是在英国学到的。他的愿望是停止为信用卡公司和税务员工作,并找到一份真正的工作。可以通过 bhepple@pacific.net.sg 联系 Bob。
加载 Disqus 评论