2012-08-09 26 views
0

有沒有人在Java中加載JPEG文件時遇到過問題?我們的客戶之一是發送無法解析的文件,但這些相同的文件可以在Windows中打開。 (我們收到的JPEG文件,其他99%,沒有任何問題的過程)未能從字節中讀取JPEG文件[]

我已經嘗試了幾個圖書館閱讀這些:

itextpdf : com.itextpdf.text.Jpeg (getInstance(imageData) - gives "java.io.IOException: Premature EOF while reading JPG." 
sanselan : org.apache.sanselan.ImageInfo (Sanselan.getImageInfo(imageData) gives "java.io.IOException: Invalid Segment: insufficient data") 
where imageData is a byte[] 

的錯誤在這裏建議對我來說,JPEG文件被破壞,然而,這並不能解釋爲什麼他們仍然可以看到。

如果任何人有任何建議,我將不勝感激

感謝

+0

你是否嘗試用油漆減少圖片尺寸? – VirtualTroll 2012-08-09 14:40:36

+0

檢查編碼問題。可能在兩端。您或您的客戶可能會使用某些可根據語言環境/編碼轉換字節的類(可能爲Reader),並會中斷數據。 – npe 2012-08-09 14:40:46

+0

也許圖像使用CMYK模型。 http://stackoverflow.com/questions/2408613/problem-reading-jpeg-image-using-imageio-readfile-file – 2012-08-09 14:48:33

回答

0

的「解決方案」我已經走了是要運行的字節數組我們通過我們的當前進程收到標識類型。如果這不能識別類型,那麼我將字節數組並強制保存爲JPEG。這可以通過當前流程重新讀取並推回。

有點破爛,但它只是一個工作了幾個月。

感謝大家的幫助!

+0

我也遇到了同樣的問題。你是如何解決這個問題的?任何幫助將不勝感激。謝謝, – ashishjmeshram 2017-06-23 12:51:45

+0

@ashishjmeshram - 恐怕很久以前,我實際上「修復」了這一點。但如果我沒有記錯的話,我只是把進來的字節流輸出到服務器上的臨時文件中,然後重新讀取該文件。幾乎沒有我稱之爲解決方案......但它的目的。 – Causteau 2017-07-19 12:24:38