Tiff图像处理

时间:2012-06-04 16:18:37

标签: c# web-services

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

请建议我将Tiff Image作为参数传递给网络服务的好方法。

提前致谢。

3 个答案:

答案 0 :(得分:0)

  1. 使用带有enctype="multipart/form-data"
  2. 的HTML表单上传TIFF
  3. 在网络服务中使用HttpFileCollection files = HttpContext.Current.Request.Files;(表单的action属性)以访问上传的文件:HttpPostedFile file = files["id_of_field_with_filename"];。这里“id_of_field_with_filename”是包含文件名的HTML表单的<input>标记的id属性。
  4. 您可以对上传的文件执行任何操作,例如,保存:file.SaveAs(someDirectory + Path.GetFileName(file.FileName));
  5. 请注意,在此解决方案中,Web服务的方法(“操作”)没有任何参数。也可以使用HTML5 File API加载图像,使用JavaScript将其转换为base64,并通过AJAX POST将此字符串上传到Web服务。在这种情况下,Web服务的方法需要有一个字符串参数来接收图像的base64编码字节。

答案 1 :(得分:0)

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。

答案 2 :(得分:0)

我会按照以下方式进行:

//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;