gallery2导入SIGMA DP1的RAW格式图片

gallery2是个不错的照片管理软件,用php+mysql写的,很适合装在龙芯nas上,管理展示照片, 2T容量的存储,24小时开机,还是很合适的。

gallery2可以处理各种格式的照片,视频,mp3, 在进行缩放旋转的同时, 还会保留原始的图片文件。

但是gallery2对DP1的RAW格式支持的不好, 缩出来用于展示的图片是乱码。

gallery2是使用dcraw这款软件对RAW照片进行处理的。

经过测试,DP1的RAW格式文件里面内嵌的jpeg缩略图,可以被dcraw导出的,于是对gallery2修改了一下,

让它可以展示DP1的RAW照片,这个方式是个权宜之计,exif数据的显示会有问题,等以后再想想办法。

补丁如下

[code]

--- gallery2/modules/dcraw/classes/DcrawToolkit.class.orig      2009-10-18 02:02:01.000000000 +0800
+++ gallery2/modules/dcraw/classes/DcrawToolkit.class   2009-10-18 02:09:12.000000000 +0800
@@ -131,9 +131,15 @@
            $gallery->guaranteeTimeLimit(90);
            list ($success, $output) = $platform->exec(array($cmd));
            if (!$success) {
+               $cmd = array($dcraw, '-c', '-e', $sourceFilename, '>', $tmpFilename);
+               list ($success, $output) = $platform->exec(array($cmd));
+               if ($success) $outtype='image/jpeg';
+               else
+               {
                @$platform->unlink($tmpFilename);
                return array(GalleryCoreApi::error(ERROR_TOOLKIT_FAILURE),
                             null, null);
+               }
            }

            $success = $platform->rename($tmpFilename, $destFilename);
@@ -144,8 +150,8 @@
                             null, null);
            }
            $platform->chmod($destFilename);
-
-           return array(null, 'image/x-portable-pixmap', $context);
+               if($outtype=='') $outtype='image/x-portable-pixmap';
+           return array(null,$outtype, $context);

        default:
            return array(GalleryCoreApi::error(ERROR_UNSUPPORTED_OPERATION), null, null);

[/code]

附件大小
gallery2_dcraw_dp1_20091018.diff.gz532 字节