0

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

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

提前致谢。

4

3 回答 3

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;
于 2012-06-04T17:55:43.753 回答
0

Web 服务可以接受 abyte[]或 aStream作为输入参数。

这是一个如何将 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。

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

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

于 2012-06-04T16:51:13.693 回答