1
我使用PNGJ庫來保存大型PNG文件(40000 x 3000)。現在我需要將圖像向右旋轉90度,而不將整個圖像保存在內存中。 PNGJ庫僅限於逐行寫入圖像,所以我無法旋轉每一行並逐列寫入imagem列。旋轉圖像而不將整個圖像保存在內存中
有沒有辦法做到這一點?
我使用PNGJ庫來保存大型PNG文件(40000 x 3000)。現在我需要將圖像向右旋轉90度,而不將整個圖像保存在內存中。 PNGJ庫僅限於逐行寫入圖像,所以我無法旋轉每一行並逐列寫入imagem列。旋轉圖像而不將整個圖像保存在內存中
有沒有辦法做到這一點?
PNGJ庫受限於線寫圖像線
其實,這是PNG格式的路線導向。如果不讀取所有「前一個」像素,則無法讀取PNG圖像的單個像素。所以,我猜你不走運。
如果你不能在內存中存儲完整的圖像,我認爲你可以做的最好的方法是通過K
水平條紋加載和寫入它。您可以通過讀取完整圖像來填充第一個條紋(您只存儲每行的第一個像素,對應於旋轉圖像的第一個水平條紋的像素,丟棄其餘的圖像),寫入並重新讀取文件填充並寫入第二個條紋等。 這涉及到K
原始文件的讀數(當然,您應該使條紋儘可能厚,以便使存儲容許量更小)。我希望你明白這個主意。
你可以用PNGJ做到這一點。
你知道一個更好的方式來做不同的格式嗎? – dinhokz
好吧,使用非壓縮格式(比如BMP),你可以隨機讀取像素(RandomAccessFile)。不過,我懷疑這會比上面提出的更好。 – leonbloy