qvplay 和 Casio QV-10 相机
在与邪恶帝国的持续战斗中,我最近减少了一个程序对“他们”的依赖——我发现了一种在 Linux 下使用我的 Casio QV-10 数码相机的方法。
本文是一个关于我使用的方法的简单 HOWTO 指南——希望能鼓励更多的人和卡西欧使用 Linux。
总有一天,每个外围设备都会附带 Linux 驱动程序和支持软件——在那之前,让我们“分享与享受!”(道格拉斯·亚当斯,《银河系漫游指南》)。

图 1. 卡西欧相机
关于相机的完整描述最好留给卡西欧,但这里只需说明它
具有固定焦距镜头(无变焦)
具有 320x240 像素,24 位色彩的固定分辨率
在闪存中存储多达 96 张照片(不受电池电量低的影响)
使用 4 节 AA 碱性电池或可选的外部电源,但不使用镍镉电池
具有到 PC 的串行链路
具有单独的打印机,由相机直接驱动
也可以输出到电视/视频
具有 CAM 默认文件格式,卡西欧专有
在新加坡售价约为 400 美元(约合 263 美元),虽然我去年圣诞节支付的价格远高于此——价格已经下降。
图片的分辨率对于简单的网页来说是足够的,但远不如最近市场上出现的一些型号那样精细。相比之下,从 35 毫米幻灯片或胶片数字化的柯达 PhotoCD 图像约为 3000x2500 像素——是像素数量的 100 多倍。另一方面,虽然分辨率一般,但生成的 320x240 jpeg 文件使用当前的调制解调器下载速度相当快。
卡西欧的专有 CAM 格式很可能在某些用途上优于其他格式(我不是图形专家),但它不适用于需要 JPEG 或 GIF 文件的网页。卡西欧提供的 Windows 软件使得将多个文件转换为 JPEG 格式非常困难。没有提供用于批量转换文件为其他格式的过滤器。每次转换的过程是
在 PC 上打开 CAM 图像(在我的 486 上需要 10 秒)
下拉“文件|导出”菜单或按 ctrl-E
下拉“格式|JPG”
输入新文件名(自动提供 .jpg 扩展名)
选择“确定”
对于一个文件,这是可以接受的,但是对于 96 个文件——算了吧。
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。
我为 qvplay、qvrec 和 qvalldel 软件编写了 man 页面(不在原始分发包中)。这些页面可在 http://home.pacific.net.sg/~bhepple/qvplay/qvplay.html 获取。
根据源代码,qvplay 似乎支持以下相机
QV-10 的各种型号,例如 QV-10a
QV-11
QV-30
QV-100(包括精细分辨率)
QV-300(包括精细分辨率)
我唯一测试过的相机是 QV-10。
一旦我掌握了 qvplay,我就将其封装在几个简单的脚本中,以执行我通常执行的操作,而无需阅读手册页。这两个脚本是
您必须做的一件奇怪的事情是修复 JPEG 图像的大小(请参阅 get_a_pic 脚本)。我必须承认我没有完全理解这里发生了什么,但显然图像以 480x240 像素的形式出现,您必须将它们更改为 4:3 的宽高比或 320x240 像素。您可以使用 xv 程序或使用 Independent JPEG Group 的命令 djpeg 和 cjpeg,以及 Poskanzer portable bitmap utilities。这些实用程序通常在各种 Linux 发行版中找到。例如
qvplay -g 1 | djpeg | pnmscale -xsize 320\ -ysize 240 | cjpeg > foobar.jpg
您可以使用 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>
qvplaytk 是 qvplay 的 Tcl/Tk 封装器,提供 GUI 界面。图 2 是该程序的屏幕截图,可以在其作者(Amano 先生)的主页 http://www.bekkoame.or.jp/~tormato/qvplayk.htm 找到。
作为 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 进行查看功能。
Itojun 编写了 cam2jpeg(有时写为 camtojpeg)作为过滤器,用于批量将 CAM 文件转换为 JPEG 或 PPM 格式。它适用于输出 CAM 格式的各种卡西欧产品,例如 QV-10、10A、30 和 100。也可以通过 ken-ichi HAYASHI 的主页 http://www.asahi-net.or.jp/~xg2k-hys/ 找到它。

图 3. 新加坡河

图 4. 老巴刹美食中心
