Skip to main content

A Python Library to Generate Dynamic Share Images. Powered by Cloudinary.

Project description

ShareImage

A Python Library to Generate Dynamic Share Images. Powered by Cloudinary.

Installation

Windows

pip install ShareImage

Linux / macOS

python3 -m pip install ShareImage

Usage

ShareImage Can be easily integrated in any Python Project.
For example, in Flask:

from flask import Flask, render_template
from ShareImage import ShareImage

app = Flask(__name__)

@app.route('/')
def index():
    image = ShareImage(
        title="Home",
        cloudName="CLOUDINARY_CLOUD_NAME",
        imagePublicId="CLOUDINARY_IMAGE_ID"
    )
    return render_template('index.html', image=image)

@app.route('/posts/<string:slug>')
def posts(slug):
    image = ShareImage(
        title=bySlug.get(slug)['title'],
        cloudName="CLOUDINARY_CLOUD_NAME",
        imagePublicId="CLOUDINARY_IMAGE_ID"
    )
    return render_template('index.html', image=image)

if __name__=="__main__":
    app.run()

Now, you can use the image variable in any img Tag or og:image/twitter:image/image Meta Tags!
Note: CLOUDINARY_CLOUD_NAME and CLOUDINARY_IMAGE_ID are respectedly Your Cloudinary Cloud Name and Image Public Id (Including Folder Name) & the bySlug is a Special Variable to find specific posts in a Array of Dictionaries by Slug and it can be achieved by the following Code:

def build_dict(seq, key):
    return dict((d[key], dict(d, index=index)) for (index, d) in enumerate(seq))

bySlug = build_dict(ARRAY_OF_POSTS, key="KEY_OF_SLUG")

# Usage: bySlug(SLUG_OF_POST)['KEY_TO_FIND']

Utilites

By default ShareImage provides two useful Utility Functions.

Clean Text (clean_text)

It Cleanes a Text String and makes it URI-Compatible. Note: It uses Double-Escape for most Special Charecters to use it with Cloudinary. Example:

from ShareImage import clean_text

title = "A Test String"
print(clean_text(title)) # Will return A%2520Test%2520String

Join Tags (join_tags)

It Joins a Array of Tags to with # to use it as the tagline of ShareImage.
Example:

from ShareImage import ShareImage, join_tags

tags = [
    'Python',
    'Cloudinary'
]

image = ShareImage(
    cloudName="zype",
    imagePublicId="blog/Post-Image",
    title='A Python Library to Generate Dynamic Share Images',
    tagline=join_tags(tags),
    taglineFont="futura"
)

Parameters

Required Parameters

Parameter Type Description
title String Title of Text
cloudName String Name of your Cloudinary Cloud
imagePublicId String Public Id of Your Image including Folder Name

Optional Parameters

Parameter Type Default Description
tagline String None Tagline of Website or Tags of Post
titleFont String futura Font of Title
titleExtraConfig String '' Extra Title Config
taglineExtraConfig String '' Extra Config of Tagline
cloudinaryUrlBase String https://res.cloudinary.com URL Base of Cloudinary
taglineFont String arial Font of Tagline
imageWidth Integer 1280 Width of Image
imageHeight Integer 669 Height of Image
textAreaWidth Integer 760 Width of TextArea
textLeftOffset Integer 480 Left Offset of Text
titleGravity String south_west Gravity of Title
taglineGravity String north_west Gravity of Tagline
titleLeftOffset Integer None Left Offset of Title
taglineLeftOffset Integer None Left Offset of Tagline
titleBottomOffset Integer 254 Bottom Offset of Title
taglineTopOffset Integer 445 Top Offset of Tagline
textColor String 000000 Color of Text
titleColor String None Color of Title (If not provided textColor will be used instead
taglineColor String None Color of Tagline (If not provided textColor will be used instead
titleFontSize Integer 64 Font Size of Title
taglineFontSize Integer 48 Font Size of Tagline

Note: If you don't provide Tagline, Parameters with tagline Prefix will be ignored.
We may add more Customization to ShareImage in the Future.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ShareImage-2.2.0.tar.gz (5.0 kB view hashes)

Uploaded Source

Built Distribution

ShareImage-2.2.0-py3-none-any.whl (5.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page