2012-06-04 184 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;