2013-08-01 40 views
1

我已經使用this code將圖像轉換爲像素數組。用於讀取圖像以像素陣列 在Java中將像素陣列轉換爲圖像

  • 將writeToFile方法用於像素陣列以圖像
    • convertTo2DWithoutUsingGetRGB方法現在我想像素陣列轉換爲圖像。但是當我轉換它時,我正在丟失圖像數據。

      1. 初始圖像尺寸:80KB JPG
      2. 重複圖像尺寸:71KB JPG

      我可以清楚地看到兩個圖像之間的一些差異,在Java產生的圖像具有某種白噪聲。

      我想重現沒有單像素數據丟失的圖像,我該如何在Java中實現?

    +1

    也許你還沒找遍。在這個網站本身,你可以找到解決方案:[question1](http://stackoverflow.com/questions/7618904/how-to-make-jpeg-lossless-in-java)和[question2](http:// stackoverflow。 COM /問題/ 706665 /無損JPEG - 轉 - 90-180-270度,在Java的)。 – blackSmith

    +0

    @blackSmith,謝謝你:) – Reddy

    回答

    1

    jpg文件格式使用有損壓縮算法,這意味着它生成的文件與原始文件會有細微的差別。您可以將質量設置更改爲更多或更少,但無法進行任何修改就無法保存原始尺寸。

    這就是爲什麼jpg不被推薦用於圖像編輯的原因。使用無損格式,如PNG。

    +0

    它看起來有點不同。因爲原始圖像是JPG,爲什麼不能再現相同的圖像?這就像我們不能使用Java複製原始圖像。 – Reddy

    +0

    這不是java,它是jpg文件格式。沒有圖像編輯軟件可以做你想問的。如果你想要一個精確的副本,你可以使用Files.copy – Joni

    +0

    可能是正確的。但是如果我想旋轉圖像並重現原始圖像的副本?或其他一些圖像操作? – Reddy