|
|
#1 |
|
Enthusiast
![]() Posts: 32
Karma: 10
Join Date: Sep 2013
Location: DE
Device: Linux PC's, Android devices, Amazon Fire HD10
|
Hi, kovid, hi guys,
here is a new recipe. I only create it to show how i insert PNG coverfiles into my RSS feeds. I found out that only jpg/jpeg files are shown as calibre covers. But mostly i got PNG files with alpha channel for this. (as i search on google-pictures for e.g. indian times ;-) So i wrote a python function to convert this for me. May it is possible to add this functionality into the code? If not , this works like charm. Try it. Code:
#!/usr/bin/env python2
# vim:fileencoding=utf-8
from __future__ import unicode_literals, division, absolute_import, print_function
from calibre.web.feeds.news import BasicNewsRecipe
# some modification to get png as coverurl
from PIL import Image
from urllib2 import urlopen
from tempfile import mkdtemp
# (my) calibre only allow jpeg files as cover.
# mostly i got fine png files so i convert them
def png_to_jpg(url):
# e.g. url is 'http:\wiki.com\myfinecover.png'
# first we take the extension of the url if we got one
ext = url.rsplit('.', 1)[-1]
# now ext = png
# now we check if png match. May later we want other extension to? like svg ...?
if ext.upper() in ('PNG'):
# load the png url file to memory
im = Image.open(urlopen(url))
# if our png file has a alpha channel - remember jpg could not have one
if im.mode in ('RGBA', 'LA'):
# if we got alpha pictures, we create a backgound as a RGB Colored image with size of our original
bg = Image.new(im.mode[:-1], im.size, (255,255,255))
# and past the loaded image in front of the background
bg.paste(im,im.split()[-1])
# rewrite our loaded image with the new one
im = bg
# next to create a temporary directory and add the jpg extension . Finally we get a temp jpg filename
tmp = mkdtemp()+ '.jpg'
# save our picture as a jpg file
# variable tmp holds the filename
im.convert('RGB').save(tmp,"JPEG") #this converts png image as jpeg
else: # no png extension, so we pass the url to the output
tmp = url
return tmp
class AdvancedUserRecipe1583667870(BasicNewsRecipe):
title = 'The Times of India'
description = 'just a little demo to show the PNG cover function'
__author__ = 'vohe'
publisher = 'i guess: The Times Group'
use_embedded_content = False
language = 'en'
rescale_images = True
remove_empty_feeds = True
timeout = 5
no_stylesheets = True
oldest_article = 2
max_articles_per_feed = 200
auto_cleanup = True
cover_url = png_to_jpg('https://upload.wikimedia.org/wikipedia/en/thumb/8/82/The_Times_Group.svg/1200px-The_Times_Group.svg.png')
feeds = [
('Times of india', 'https://timesofindia.indiatimes.com/rssfeeds/-2128936835.cms'),
]
Last edited by VoHegg; 03-08-2020 at 08:15 AM. |
|
|
|
|
|
#2 |
|
creator of calibre
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 45,606
Karma: 28548974
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
|
calibre will automatically convert images to jpeg as needed.
|
|
|
|
| Advert | |
|
|
![]() |
| Tags |
| png cover |
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Calibre dont like 256 colors png cover | un_pogaz | Calibre | 6 | 07-12-2018 02:43 AM |
| Updated Recipe for The Hindu (Indian English Daily) | hashken | Recipes | 2 | 07-15-2014 02:21 PM |
| Outlook(Indian) Recipe | sexymax15 | Recipes | 0 | 06-16-2011 06:10 AM |
| Indian Express Recipe | sexymax15 | Recipes | 0 | 06-16-2011 06:06 AM |
| How to save the book cover in png | georgen | Calibre | 13 | 02-18-2011 03:49 PM |