2016-01-19 36 views
0

我們的Web應用程序從幾十個不同的第三方來源接收圖像文件。業務規則規定我們將原始圖像保存爲收到的圖像,而不進行任何形式的圖像處理。當使用ImageResizer通過專用Web服務器爲圖像請求圖像時,我們處理調整大小,加水印,旋轉等。 autorotate = true和copymetadata = true是映像服務器上的默認值。ImageResizer和刪除圖像EXIF信息的分支

其中一個第三方來源可疑地處理圖像旋轉。當他們最初收到圖像時,他們通過旋轉圖像來兌現圖像的EXIF方向數據。但是,它們保留EXIF方向數據的預旋轉版本。所以當圖像到達我們時,它會旋轉,但EXIF方向標誌仍然保留在圖像中。當圖像從我們的圖像服務器被請求時,方向標誌被處理(通過autorotate = true),並且所產生的請求圖像被再次旋轉(顯示不正確),並且EXIF方向數據被移除。這導致不滿意的用戶。

說服第三方改變他們處理EXIF數據的方式不是一種選擇。

我們打算用於這些特定圖像的解決方案是在請求時設置autorotate = false。但是,EXIF方向信息仍然存在。由於我沒有看到ImageResizer選項只刪除EXIF方向數據(除了進入System.Drawing命名空間,我們不願意這樣做),所以我們正在考慮爲這些特定圖像設置copymetadata = false。

提供沒有元數據的圖像的Web服務器的缺點是什麼?具體關於色彩空間/配置文件?這些圖像最終被複制並在其他網站上使用。

回答

0

除非您告訴它,否則ImageResizer不會複製任何元數據或EXIF方向數據。在那些破損的圖像上設置&autorotate=false可以正常工作。

即使您正在使用CopyMetadata,它也會複製方向數據和其他位圖特定的數字specifically excludes。你有沒有看過一個場景,其中&autorotate=false請求的圖像後來出現在查看器中進一步旋轉?

CopyMetadata主要用於複製版權和GPS數據。它不處理XML或XMP元數據,也不復制顏色空間 - ImageResizer總是輸出sRGB圖像,因特網默認值 - 不需要色彩空間信息。

+0

謝謝,娜塔奈爾。我沒有意識到方向數據不會複製,所以很好學。我們還沒有看到圖像旋轉的例子 - 這更多的是防止它的先發制人的措施。現在我們知道這不是我們必須關心的事情。 – Rich