Merge pull request #2647 from radarhere/spider

Added file pointer save to SpiderImagePlugin
This commit is contained in:
wiredfool 2017-09-09 10:23:45 +01:00 committed by GitHub
commit 04052e85c9
2 changed files with 17 additions and 6 deletions

View File

@ -267,17 +267,11 @@ def _save(im, fp, filename):
raise IOError("Error creating Spider header") raise IOError("Error creating Spider header")
# write the SPIDER header # write the SPIDER header
try:
fp = open(filename, 'wb')
except:
raise IOError("Unable to open %s for writing" % filename)
fp.writelines(hdr) fp.writelines(hdr)
rawmode = "F;32NF" # 32-bit native floating point rawmode = "F;32NF" # 32-bit native floating point
ImageFile._save(im, fp, [("raw", (0, 0)+im.size, 0, (rawmode, 0, 1))]) ImageFile._save(im, fp, [("raw", (0, 0)+im.size, 0, (rawmode, 0, 1))])
fp.close()
def _save_spider(im, fp, filename): def _save_spider(im, fp, filename):
# get the filename extension and register it with Image # get the filename extension and register it with Image

View File

@ -4,6 +4,8 @@ from PIL import Image
from PIL import ImageSequence from PIL import ImageSequence
from PIL import SpiderImagePlugin from PIL import SpiderImagePlugin
import tempfile
TEST_FILE = "Tests/images/hopper.spider" TEST_FILE = "Tests/images/hopper.spider"
@ -30,6 +32,21 @@ class TestImageSpider(PillowTestCase):
self.assertEqual(im2.size, (128, 128)) self.assertEqual(im2.size, (128, 128))
self.assertEqual(im2.format, "SPIDER") self.assertEqual(im2.format, "SPIDER")
def test_tempfile(self):
# Arrange
im = hopper()
# Act
with tempfile.TemporaryFile() as fp:
im.save(fp, "SPIDER")
# Assert
fp.seek(0)
reloaded = Image.open(fp)
self.assertEqual(reloaded.mode, "F")
self.assertEqual(reloaded.size, (128, 128))
self.assertEqual(reloaded.format, "SPIDER")
def test_isSpiderImage(self): def test_isSpiderImage(self):
self.assertTrue(SpiderImagePlugin.isSpiderImage(TEST_FILE)) self.assertTrue(SpiderImagePlugin.isSpiderImage(TEST_FILE))