GDAL (पायथन बाइंडिंग के साथ) इसके लिए कुछ बहुत अच्छे ड्राइवर प्रदान करता है। हालांकि यह एक भू-स्थानिक पैकेज है, उदाहरण के लिए यह बीएमपी और पीएनजी के साथ ठीक काम करता है।
import gdal
# only loads the dataset
ds = gdal.Open('D:\\my_large_image.png')
# read 1 row at the time
for row in range(ds.RasterYSize):
row_data = ds.ReadAsArray(0,row,ds.RasterXSize,1)
ds = None # this closes the file
यह आप एक परिणाम के रूप में एक Numpy सरणी देता है, procesing लिए बहुत तैयार: इस उदाहरण कैसे पंक्ति से एक PNG पंक्ति लोड करने के लिए दिखाई देते हैं। आप किसी भी परिणाम को एक ही फैशन में लिख सकते हैं।
print type(row_data)
<type 'numpy.ndarray'>
print row_data.shape
(3, 1, 763)
print row_data
[[[ 0 0 255 ..., 230 230 0]]
[[ 0 0 252 ..., 232 233 0]]
[[ 0 0 252 ..., 232 233 0]]]
पढ़ने के लिए विशिष्ट पैकेज स्थापित करना थोड़ा अधिक हो सकता है यदि पीआईएल या कुछ और कर सकता है। लेकिन यह एक मजबूत विकल्प है, मैंने इस तरह 30000 * 30000 पिक्सेल की छवियों को संसाधित किया है।
स्रोत
2013-02-16 16:40:56
कई मामलों में, हाँ, लेकिन यह छवि और उस लाइब्रेरी के प्रारूप पर निर्भर करता है जिसका आप इसे पढ़ने के लिए उपयोग कर रहे हैं। आपकी छवियां क्या प्रारूप हैं? –
मैं पीएनजी फ़ाइल प्रारूप का उपयोग कर रहा हूँ। – nickponline
टीआईएफएफ इसे विशेष रूप से आसान बना देगा, लेकिन मुझे नहीं लगता कि पीआईएल बैंड द्वारा टीआईएफएफ पढ़ने का समर्थन करता है। – Jaime