1
0
mirror of https://github.com/ciromattia/kcc synced 2026-01-25 22:47:28 +00:00

Use temporary directory as workdir (fixes converting from external volumes and zipfiles renaming)

Fixed "add folders" from GUI.
This commit is contained in:
Ciro Mattia Gonano
2013-01-29 15:01:36 +01:00
parent dcb577d457
commit d136f8cc3a
6 changed files with 65 additions and 93 deletions

View File

@@ -110,10 +110,9 @@ class ComicPage:
def saveToDir(self,targetdir):
filename = os.path.basename(self.origFileName)
#print "Saving to " + targetdir + '/' + filename
try:
self.image = self.image.convert('L') # convert to grayscale
self.image.save(targetdir + '/' + filename,"JPEG")
self.image.save(os.path.join(targetdir,filename),"JPEG")
except IOError as e:
raise RuntimeError('Cannot write image in directory %s: %s' %(targetdir,e))
@@ -133,11 +132,9 @@ class ComicPage:
if self.image.size[0] <= self.size[0] and self.image.size[1] <= self.size[1]:
if not upscale:
# do not upscale but center image in a device-sized image
newImage = Image.new('RGB', (self.size[0], self.size[1]), (255,255,255))
newImage.paste(self.image, (
(self.size[0] - self.image.size[0]) / 2,
(self.size[1] - self.image.size[1]) / 2))
self.image = newImage
borderw = (self.size[0] - self.image.size[0]) / 2
borderh = (self.size[1] - self.image.size[1]) / 2
self.image = ImageOps.expand(self.image, border=(borderw,borderh), fill='white')
return self.image
else:
method = Image.NEAREST
@@ -149,14 +146,10 @@ class ComicPage:
ratioDev = float(self.size[0]) / float(self.size[1])
if (float(self.image.size[0]) / float(self.image.size[1])) < ratioDev:
diff = int(self.image.size[1] * ratioDev) - self.image.size[0]
newImage = Image.new('RGB', (self.image.size[0] + diff, self.image.size[1]), (255,255,255))
newImage.paste(self.image, (diff / 2, 0, diff / 2 + self.image.size[0], self.image.size[1]))
self.image = newImage
self.image = ImageOps.expand(self.image, border=(diff/2,0), fill='white')
elif (float(self.image.size[0]) / float(self.image.size[1])) > ratioDev:
diff = int(self.image.size[0] / ratioDev) - self.image.size[1]
newImage = Image.new('RGB', (self.image.size[0], self.image.size[1] + diff), (255,255,255))
newImage.paste(self.image, (0, diff / 2, self.image.size[0], diff / 2 + self.image.size[1]))
self.image = newImage
self.image = ImageOps.expand(self.image, border=(0,diff/2), fill='white')
self.image = ImageOps.fit(self.image, self.size, method = method, centering = (0.5,0.5))
return self.image
@@ -338,4 +331,3 @@ class ComicPage:
if i==5:
draw.rectangle([(widthImg/2-1,heightImg-5), (widthImg/2+1,heightImg)],outline=black,fill=notch_colour)
return self.image