mirror of
https://github.com/ciromattia/kcc
synced 2025-12-13 01:36:27 +00:00
Tweaked cover parsing
This commit is contained in:
@@ -345,34 +345,20 @@ class Cover:
|
|||||||
source = urlopen(Request(quote(self.options.remoteCovers[self.tomeNumber]).replace('%3A', ':', 1),
|
source = urlopen(Request(quote(self.options.remoteCovers[self.tomeNumber]).replace('%3A', ':', 1),
|
||||||
headers={'User-Agent': 'KindleComicConverter/' + __version__})).read()
|
headers={'User-Agent': 'KindleComicConverter/' + __version__})).read()
|
||||||
self.image = Image.open(BytesIO(source))
|
self.image = Image.open(BytesIO(source))
|
||||||
self.processExternal()
|
|
||||||
except Exception:
|
except Exception:
|
||||||
self.image = Image.open(source)
|
self.image = Image.open(source)
|
||||||
self.processInternal()
|
|
||||||
else:
|
else:
|
||||||
self.image = Image.open(source)
|
self.image = Image.open(source)
|
||||||
self.processInternal()
|
self.process()
|
||||||
|
|
||||||
def processInternal(self):
|
def process(self):
|
||||||
self.image = self.image.convert('RGB')
|
|
||||||
self.image = self.trim()
|
|
||||||
self.save()
|
|
||||||
|
|
||||||
def processExternal(self):
|
|
||||||
self.image = self.image.convert('RGB')
|
self.image = self.image.convert('RGB')
|
||||||
|
self.image = ImageOps.autocontrast(self.image)
|
||||||
|
if not self.options.forcecolor:
|
||||||
|
self.image = self.image.convert('L')
|
||||||
self.image.thumbnail(self.options.profileData[1], Image.LANCZOS)
|
self.image.thumbnail(self.options.profileData[1], Image.LANCZOS)
|
||||||
self.save()
|
self.save()
|
||||||
|
|
||||||
def trim(self):
|
|
||||||
bg = Image.new(self.image.mode, self.image.size, self.image.getpixel((0, 0)))
|
|
||||||
diff = ImageChops.difference(self.image, bg)
|
|
||||||
diff = ImageChops.add(diff, diff, 2.0, -100)
|
|
||||||
bbox = diff.getbbox()
|
|
||||||
if bbox:
|
|
||||||
return self.image.crop(bbox)
|
|
||||||
else:
|
|
||||||
return self.image
|
|
||||||
|
|
||||||
def save(self):
|
def save(self):
|
||||||
try:
|
try:
|
||||||
self.image.save(self.target, "JPEG", optimize=1, quality=80)
|
self.image.save(self.target, "JPEG", optimize=1, quality=80)
|
||||||
@@ -380,7 +366,7 @@ class Cover:
|
|||||||
raise RuntimeError('Failed to process downloaded cover.')
|
raise RuntimeError('Failed to process downloaded cover.')
|
||||||
|
|
||||||
def saveToKindle(self, kindle, asin):
|
def saveToKindle(self, kindle, asin):
|
||||||
self.image = self.image.resize((300, 470), Image.ANTIALIAS).convert('L')
|
self.image = self.image.resize((300, 470), Image.ANTIALIAS)
|
||||||
try:
|
try:
|
||||||
self.image.save(os.path.join(kindle.path.split('documents')[0], 'system', 'thumbnails',
|
self.image.save(os.path.join(kindle.path.split('documents')[0], 'system', 'thumbnails',
|
||||||
'thumbnail_' + asin + '_EBOK_portrait.jpg'), 'JPEG')
|
'thumbnail_' + asin + '_EBOK_portrait.jpg'), 'JPEG')
|
||||||
|
|||||||
Reference in New Issue
Block a user