快速TIFF图像转换以在Web客户端中显示

时间:2010-11-26 09:08:40

标签: c# .net asp.net-mvc image-processing tiff

目前,我使用以下内容预览扫描的TIFF文档:

Bitmap bmp = new Bitmap(@"document.tif");
var ms = new MemoryStream();

bmp.Save(ms, ImageFormat.Png);

var bmpBytes = ms.GetBuffer();
bmp.Dispose();
ms.Close();

return new FileStreamResult(new MemoryStream(bmpBytes), "image/png");

有没有办法加快转换?使用除标准Image.Save()方法以外的其他东西?

我发现了在像素操作here之间锁定和解锁bitmapData的不安全类,但我不确定它是否适合我的任务(因为我只需要从一种格式转换为另一种格式)。然而,我的探查器显示大约30ms的胜利(在116毫秒之前,83毫秒之后)

3 个答案:

答案 0 :(得分:1)

FreeImage是一个很棒的图像处理库,它有C#包装器。您也可以找到FreeImage .NET documentation

相当成熟,所以它的几个元素都经过了高度优化。

答案 1 :(得分:1)

我想我找到了它! :) Atalasoft dotImage(免费版)将图像显示为大约35毫秒...

答案 2 :(得分:0)

我正在使用外部工具进行转换:http://www.imagemagick.org/script/index.php

速度要快得多。

<强>更新

做这样的事情:

var sourceFile = "C:\\yourscanned.tiff";
var destFile = Path.GetTempPath() + "\\yourpng.tmp";
var process = Process.Start("C:\path\to\imagick\convert.exe", sourceFile + " " + destFile);
process.WaitForExit();

FileStream myStream = new FileStream(destFile);
//woho, do what you want.

File.Delete(destFile);