Register Guidelines E-Books Today's Posts Search

Go Back   MobileRead Forums > E-Book Software > Calibre > Recipes

Notices

Reply
 
Thread Tools Search this Thread
Old 03-08-2020, 08:12 AM   #1
VoHegg
Enthusiast
VoHegg began at the beginning.
 
Posts: 32
Karma: 10
Join Date: Sep 2013
Location: DE
Device: Linux PC's, Android devices, Amazon Fire HD10
Lightbulb Recipe - Indian times and new function! PNG Cover

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.
VoHegg is offline   Reply With Quote
Old 03-08-2020, 10:02 PM   #2
kovidgoyal
creator of calibre
kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.
 
kovidgoyal's Avatar
 
Posts: 45,349
Karma: 27182818
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
calibre will automatically convert images to jpeg as needed.
kovidgoyal is offline   Reply With Quote
Advert
Reply

Tags
png cover


Forum Jump

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


All times are GMT -4. The time now is 01:57 PM.


MobileRead.com is a privately owned, operated and funded community.