Skip to main content

create_image

Generate an image from a template with optional modifications.
client.create_image(
    template_id: str,
    modifications: Optional[List[Dict[str, Any]]] = None,
    format: str = "png",
    thumbnail: bool = False
) -> Dict[str, Any]

Parameters

template_id
str
required
The template ID (e.g., ‘tpl_xxxxxxxxx’)
modifications
list
Array of modifications to apply to the template
format
str
default:"png"
Output format: ‘png’ or ‘svg’
thumbnail
bool
default:"False"
Generate thumbnail version

Returns

Returns a dict with either result or error:
# Success
{
    "result": bytes  # Image data
}

# Error
{
    "error": {
        "code": str,
        "message": str,
        "docs": str
    }
}

Examples

Basic Image Generation

from bannerify import BannerifyClient

client = BannerifyClient("your-api-key")

result = client.create_image("tpl_xxxxxxxxx")

if "result" in result:
    with open("output.png", "wb") as f:
        f.write(result["result"])
    print("Image created successfully!")

With Modifications

result = client.create_image(
    "tpl_xxxxxxxxx",
    modifications=[
        {"name": "title", "text": "Welcome to Bannerify"},
        {"name": "subtitle", "text": "Generate images at scale"},
        {"name": "logo", "src": "https://example.com/logo.png"}
    ]
)

Generate SVG

result = client.create_image(
    "tpl_xxxxxxxxx",
    format="svg",
    modifications=[
        {"name": "title", "text": "SVG Output"}
    ]
)

if "result" in result:
    svg = result["result"]
    if isinstance(svg, bytes):
        svg = svg.decode("utf-8")
    
    with open("output.svg", "w") as f:
        f.write(svg)

Generate Thumbnail

result = client.create_image(
    "tpl_xxxxxxxxx",
    thumbnail=True
)

Error Handling

result = client.create_image(
    "tpl_xxxxxxxxx",
    modifications=[
        {"name": "title", "text": "Test"}
    ]
)

if "error" in result:
    print(f"Error Code: {result['error']['code']}")
    print(f"Message: {result['error']['message']}")
    print(f"Documentation: {result['error']['docs']}")
else:
    with open("output.png", "wb") as f:
        f.write(result["result"])

Use Cases

Dynamic Marketing Banners

products = [
    {"name": "Product A", "price": "$29.99", "image": "https://example.com/a.jpg"},
    {"name": "Product B", "price": "$39.99", "image": "https://example.com/b.jpg"},
]

for i, product in enumerate(products):
    result = client.create_image(
        "tpl_product_banner",
        modifications=[
            {"name": "product_name", "text": product["name"]},
            {"name": "price", "text": product["price"]},
            {"name": "product_image", "src": product["image"]}
        ]
    )
    
    if "result" in result:
        with open(f"banner_{i}.png", "wb") as f:
            f.write(result["result"])

Social Media Posts

from datetime import datetime

result = client.create_image(
    "tpl_social_post",
    modifications=[
        {"name": "headline", "text": "New Blog Post!"},
        {"name": "author", "text": "John Doe"},
        {"name": "date", "text": datetime.now().strftime("%B %d, %Y")}
    ]
)

Toggle Visibility

result = client.create_image(
    "tpl_xxxxxxxxx",
    modifications=[
        {"name": "watermark", "visible": False},
        {"name": "badge", "visible": True}
    ]
)