繁体   English   中英

Tiff图像处理

[英]Tiff Image Processing

我想将Tiff图像传递到Web服务,Web服务将Tiff图像作为参数,并且我必须对Tiff图像进行一些操作。

请给我建议一种将Tiff图像作为参数传递给Web服务的好方法。

提前致谢。

  1. 使用带有enctype="multipart/form-data"的HTML表单上载TIFF。
  2. 使用HttpFileCollection files = HttpContext.Current.Request.Files; 在Web服务中(表单的action属性)以访问上载的文件: HttpPostedFile file = files["id_of_field_with_filename"]; 这里的“ id_of_field_with_filename”是包含文件名的HTML表单的<input>标记的id属性。
  3. 您可以对上传的文件执行任何操作,例如,将其保存: file.SaveAs(someDirectory + Path.GetFileName(file.FileName));

请注意,在此解决方案中,Web服务的方法(“操作”)没有任何参数。 也可以使用HTML5 File API加载图像,使用JavaScript将其转换为base64,然后通过AJAX POST将该字符串上传到Web服务。 在这种情况下,Web服务的方法需要具有字符串参数才能接收图像的base64编码的字节。

Web服务可以接受byte[]Stream作为输入参数。

这是如何将Tiff文件作为byte []传递的示例:

byte[] fileBlob = new byte[FileUploadControl1.PostedFile.InputStream.Length]; FileUploadControl1.PostedFile.InputStream.Read(fileBlob, 0, (int)FileUploadControl1.PostedFile.InputStream.Length);

svc.UploadFile(fileBlob);

本示例基于C#ASP.NET。

我将通过以下方式进行操作:

//get image from file or smth.
Image img = Image.FromFile(filename);

byte[] bytes;
using (MemoryStream ms = new MemoryStream())
{
    img.Save(ms, ImageFormat.Tiff);
    bytes = ms.ToArray();
}

string ret = Convert.ToBase64String(bytes);
return ret;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM