2012-06-04 236 views
0

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

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

在此先感谢。

+0

这一切都依赖于Web服务。我建议您检查API和任何示例文档(如果可用)。 – RedFilter

+0

http://www.bobpowell.net/generating_multipage_tiffs.htm –

回答

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

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

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。

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;