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.
Metadata
Release files for ShareImage 2.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ShareImage-2.2.0.tar.gz | 5.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ShareImage-2.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.0 kB