Garbha samskara instagram id ke liye bio and ad ke liye ach sa information vala page bna do

Searching the Web

Garbha Samskara benefits pregnancy ancient Indian practice

Garbha samskara instagram id ke liye bio and ad ke liye ach sa information vala page bna do

Searching the Web

Garbha Samskara benefits pregnancy ancient Indian practice details

Ab main aapke liye ek sundar Instagram Bio aur Ad Information Page banata hoon:

🌸 INSTAGRAM BIO

🌿 गर्भ संस्कार | Garbha Samskara 🌿
✨ Shishu ke Jeevan ki Shubh Shuruaat
🤰 Garbhavastha mein Maa aur Shishu ka Samagra Vikas
🧘 Ayurvedic | Vedic | Pranayam | Mantra | Poshan
📿 Sanatan Parampara se inspired prenatal care
📩 DM for Classes / Sessions
👇 Abhi Judiye — Link in Bio

📋 AD / INFORMATION PAGE


🌸 गर्भ संस्कार क्या है? | What is Garbha Samskara?

गर्भ संस्कार भारत की सबसे प्राचीन और वैज्ञानिक prenatal (गर्भकालीन) देखभाल पद्धति है।
"गर्भ" = माँ का गर्भ (Womb) "संस्कार" = शिशु पर सकारात्मक संस्कारों का आरोपण
यह मान्यता है कि गर्भावस्था के दौरान माँ के विचार, भावनाएं, आहार और जीवनशैली — शिशु के मस्तिष्क, व्यक्तित्व और स्वास्थ्य को गहराई से प्रभावित करते हैं।

✨ गर्भ संस्कार के मुख्य स्तंभ

🔷 स्तंभ🌿 विवरण
🧘 मानसिकMeditation, सकारात्मक विचार, तनाव मुक्ति
🎵 संगीतVedic Mantras, Classical Music, शिशु से संवाद
🥗 आहारAyurvedic Sattvic Diet, पौष्टिक भोजन
📖 अध्ययनअच्छी कहानियाँ, धर्मग्रंथ, प्रेरणादायक पुस्तकें
🌿 योगGarbhini Yoga, Pranayam, Light Exercises
🙏 आध्यात्मPuja, Mantra, Sanskara Vidhi

💛 गर्भ संस्कार के लाभ — माँ के लिए

✅ तनाव और anxiety में कमी ✅ शरीर में ऊर्जा और positivity का संचार ✅ Normal delivery की संभावना बढ़ती है ✅ Hormonal balance बना रहता है ✅ गर्भावस्था का अनुभव सुखमय और आनंदमय बनता है

💛 गर्भ संस्कार के लाभ — शिशु के लिए

✅ बच्चे का मस्तिष्क विकास (Brain Development) बेहतर होता है ✅ बच्चा शांत, स्वस्थ और बुद्धिमान होता है ✅ जन्म के बाद बच्चे में सकारात्मक संस्कार होते हैं ✅ Emotional intelligence और creativity बढ़ती है ✅ माँ और शिशु के बीच गहरा आत्मिक बंधन बनता है

📿 हमारे Sessions में क्या मिलेगा?

🌸 Garbha Samskara Classes (Online / Offline) 🧘 Guided Meditation & Pranayam — गर्भिणी के लिए विशेष 🎵 Vedic Mantra & Music Therapy 🥗 Ayurvedic Diet Plan — तिमाही अनुसार (Month-wise) 📖 Shishu Samvaad — शिशु से बात करने की विधि 🌿 Yoga Sessions — Safe & Easy Pregnancy Yoga 📿 Sapta Samskara Vidhi — पारंपरिक संस्कार मार्गदर्शन

🌟 किसके लिए है यह?

👶 जो माताएं गर्भधारण की योजना बना रही हैं 🤰 जो माताएं पहली या दूसरी तिमाही में हैं 👨‍👩‍👧 परिवार जो बच्चे को सर्वश्रेष्ठ शुरुआत देना चाहता है 💑 Couples जो Conscious Parenting सीखना चाहते हैं

🌺 हमसे जुड़ें

"एक सुसंस्कृत माँ — एक संस्कारवान राष्ट्र की नींव है।"
📩 DM करें — Classes और Sessions के लिए 📞 WhatsApp: [अपना नंबर यहाँ डालें] 🌐 Website: [अपनी website डालें] 📍 Location: [शहर का नाम]

🏷️ Hashtags (Copy-Paste करें)

#गर्भसंस्कार #GarbhaSamskara #GarbhSanskar
#PregnancyWellness #AyurvedicPregnancy
#VedicMotherhood #ConsciousParenting
#HappyPregnancy #MaaAurShishu #MotherhoodIndia
#PregnancyYoga #GarbhSanskarClass
#VedicBabyDevelopment #SattvicDiet
#IndianPregnancyTradition #HolisticPregnancy
#NewMom #MomToBe #PregnancyJourney
#गर्भावस्था #माँ_और_शिशु

Yeh content aap seedha Instagram Bio aur Posts mein use kar sakte hain. Agar aap chahte hain ki main:
  • PDF ya Image format mein banao
  • English version bhi banao
  • Story / Reel script likhun
  • Highlight cover ideas dun
...toh batayein! 🌸

Make a professional PDF poster for this information

Reading File
Running Command

ls /home/daytona/workspace/ 2>/dev/null && mkdir -p /home/daytona/workspace/garb…

Writing File

~/garbha-samskara/create_poster.py

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import cm, mm
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.platypus import KeepTogether
import os

OUTPUT = "/home/daytona/workspace/garbha-samskara/GarbhaSamskara_Poster.pdf"

# Color Palette - Earthy, spiritual, warm
SAFFRON       = colors.HexColor("#E8792C")
DARK_SAFFRON  = colors.HexColor("#C05C10")
CREAM         = colors.HexColor("#FFF8EE")
GOLD          = colors.HexColor("#D4A017")
LIGHT_GOLD    = colors.HexColor("#FFF0C0")
GREEN         = colors.HexColor("#4A7C59")
LIGHT_GREEN   = colors.HexColor("#E8F5EE")
MAROON        = colors.HexColor("#7B1A1A")
BROWN_LIGHT   = colors.HexColor("#FBF0E0")
TEXT_DARK     = colors.HexColor("#2B1A0A")
TEXT_MID      = colors.HexColor("#5A3A1A")
WHITE         = colors.white

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    rightMargin=1.8*cm,
    leftMargin=1.8*cm,
    topMargin=1.5*cm,
    bottomMargin=1.5*cm,
)

W, H = A4
styles = getSampleStyleSheet()

def style(name, **kwargs):
    s = ParagraphStyle(name, **kwargs)
    return s

# ── Styles ──────────────────────────────────────────────────────
TITLE_STYLE = style("Title",
    fontSize=28, textColor=WHITE, alignment=TA_CENTER,
    fontName="Helvetica-Bold", leading=34, spaceAfter=2)

SUBTITLE_STYLE = style("Subtitle",
    fontSize=13, textColor=LIGHT_GOLD, alignment=TA_CENTER,
    fontName="Helvetica-Oblique", leading=18, spaceAfter=4)

TAGLINE_STYLE = style("Tagline",
    fontSize=10, textColor=CREAM, alignment=TA_CENTER,
    fontName="Helvetica", leading=14)

SECTION_HEAD = style("SectionHead",
    fontSize=13, textColor=WHITE, alignment=TA_CENTER,
    fontName="Helvetica-Bold", leading=18)

BODY = style("Body",
    fontSize=10, textColor=TEXT_DARK, alignment=TA_JUSTIFY,
    fontName="Helvetica", leading=15, spaceAfter=4)

BODY_CENTER = style("BodyCenter",
    fontSize=10, textColor=TEXT_DARK, alignment=TA_CENTER,
    fontName="Helvetica", leading=14)

BULLET = style("Bullet",
    fontSize=10, textColor=TEXT_DARK, alignment=TA_LEFT,
    fontName="Helvetica", leading=16, leftIndent=10, spaceAfter=2)

BOLD_BULLET = style("BoldBullet",
    fontSize=10, textColor=MAROON, alignment=TA_LEFT,
    fontName="Helvetica-Bold", leading=16, leftIndent=10, spaceAfter=2)

QUOTE = style("Quote",
    fontSize=11, textColor=MAROON, alignment=TA_CENTER,
    fontName="Helvetica-Oblique", leading=16)

CONTACT = style("Contact",
    fontSize=10, textColor=TEXT_MID, alignment=TA_CENTER,
    fontName="Helvetica", leading=15)

FOOTER = style("Footer",
    fontSize=8, textColor=TEXT_MID, alignment=TA_CENTER,
    fontName="Helvetica", leading=12)

# ── Helper: colored banner ───────────────────────────────────────
def banner(text_para, bg_color, padding_top=8, padding_bottom=8):
    t = Table([[text_para]], colWidths=[W - 3.6*cm])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), bg_color),
        ("ROUNDEDCORNERS", [6]),
        ("TOPPADDING",    (0,0), (-1,-1), padding_top),
        ("BOTTOMPADDING", (0,0), (-1,-1), padding_bottom),
        ("LEFTPADDING",   (0,0), (-1,-1), 12),
        ("RIGHTPADDING",  (0,0), (-1,-1), 12),
    ]))
    return t

def two_col_table(left_items, right_items, left_color, right_color):
    col_w = (W - 3.6*cm) / 2 - 4
    left_cells = [Paragraph(x, BULLET) for x in left_items]
    right_cells = [Paragraph(x, BULLET) for x in right_items]
    data = list(zip(left_cells, right_cells))
    t = Table(data, colWidths=[col_w, col_w])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (0,-1), left_color),
        ("BACKGROUND", (1,0), (1,-1), right_color),
        ("TOPPADDING",    (0,0), (-1,-1), 5),
        ("BOTTOMPADDING", (0,0), (-1,-1), 5),
        ("LEFTPADDING",   (0,0), (-1,-1), 8),
        ("RIGHTPADDING",  (0,0), (-1,-1), 8),
        ("VALIGN",        (0,0), (-1,-1), "TOP"),
    ]))
    return t

# ── Build Story ──────────────────────────────────────────────────
story = []

# ═══ HEADER BANNER ═══
header_content = [
    Paragraph("🌸 गर्भ संस्कार 🌸", TITLE_STYLE),
    Paragraph("Garbha Samskara", SUBTITLE_STYLE),
    Paragraph("Shishu ke Jeevan ki Shubh Shuruaat — Womb to Wisdom", TAGLINE_STYLE),
]
header_table = Table([[p] for p in header_content], colWidths=[W - 3.6*cm])
header_table.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), SAFFRON),
    ("TOPPADDING",    (0,0), (-1,-1), 12),
    ("BOTTOMPADDING", (0,0), (-1,-1), 12),
    ("LEFTPADDING",   (0,0), (-1,-1), 10),
    ("RIGHTPADDING",  (0,0), (-1,-1), 10),
]))
story.append(header_table)
story.append(Spacer(1, 10))

# ═══ WHAT IS GARBHA SAMSKARA ═══
story.append(banner(Paragraph("🌿 Garbha Samskara Kya Hai?", SECTION_HEAD), GREEN, 7, 7))
story.append(Spacer(1, 6))
story.append(Paragraph(
    "<b>Garbha Samskara</b> Bharat ki sabse prachin aur vaigyanik prenatal (garbhakalin) dekhbhal paddhati hai. "
    "Yeh manyata hai ki <b>garbhavastha ke dauran maa ke vichar, bhavanaein, aahar aur jeevanshaili</b> — "
    "shishu ke mastishk, vyaktitva aur swasthya ko gehrai se prabhavit karti hai.",
    BODY))
story.append(Spacer(1, 4))

# Sanskrit box
skt_data = [
    [Paragraph("<b>GARBHA</b>", style("skt1", fontSize=11, textColor=SAFFRON, alignment=TA_CENTER, fontName="Helvetica-Bold", leading=14)),
     Paragraph("<b>SANSKARA</b>", style("skt2", fontSize=11, textColor=GREEN, alignment=TA_CENTER, fontName="Helvetica-Bold", leading=14))],
    [Paragraph("Maa ka Garbh (Womb)", style("skt3", fontSize=9, textColor=TEXT_MID, alignment=TA_CENTER, fontName="Helvetica", leading=12)),
     Paragraph("Shishu par Sakaratmak Samskaaron ka Aropaṇ", style("skt4", fontSize=9, textColor=TEXT_MID, alignment=TA_CENTER, fontName="Helvetica", leading=12))],
]
col_w = (W - 3.6*cm) / 2
skt_table = Table(skt_data, colWidths=[col_w, col_w])
skt_table.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (0,-1), colors.HexColor("#FFF0D8")),
    ("BACKGROUND", (1,0), (1,-1), LIGHT_GREEN),
    ("TOPPADDING",    (0,0), (-1,-1), 6),
    ("BOTTOMPADDING", (0,0), (-1,-1), 6),
    ("LEFTPADDING",   (0,0), (-1,-1), 10),
    ("RIGHTPADDING",  (0,0), (-1,-1), 10),
    ("BOX",           (0,0), (-1,-1), 0.5, GOLD),
    ("LINEAFTER",     (0,0), (0,-1), 0.5, GOLD),
]))
story.append(skt_table)
story.append(Spacer(1, 10))

# ═══ 6 PILLARS ═══
story.append(banner(Paragraph("✨ Garbha Samskara ke 6 Mukhya Stambh", SECTION_HEAD), DARK_SAFFRON, 7, 7))
story.append(Spacer(1, 6))

pillars = [
    ["🧘  Mansik Shakti",   "Meditation, sakaratmak vichar, tanav mukti"],
    ["🎵  Sangeet & Mantra", "Vedic Mantras, Classical Music, Shishu se Samvaad"],
    ["🥗  Sattvic Aahar",   "Ayurvedic poshtik bhojan, trinasari diet plan"],
    ["📖  Adhyayan",         "Acchi kahaniyaan, dharmagranth, preranadayak pustak"],
    ["🌿  Yoga & Pranayam",  "Garbhini Yoga, breathing exercises"],
    ["🙏  Adhyatm",          "Puja, Mantra, Sapta Sanskara Vidhi"],
]
pdata = []
for row in pillars:
    pdata.append([
        Paragraph(f"<b>{row[0]}</b>", style("ph", fontSize=10, textColor=MAROON, fontName="Helvetica-Bold", leading=13)),
        Paragraph(row[1], style("pb", fontSize=10, textColor=TEXT_DARK, fontName="Helvetica", leading=13)),
    ])

col1 = 5.5*cm
col2 = W - 3.6*cm - col1
ptable = Table(pdata, colWidths=[col1, col2])
ptable.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), BROWN_LIGHT),
    ("ROWBACKGROUNDS", (0,0), (-1,-1), [BROWN_LIGHT, CREAM]),
    ("TOPPADDING",    (0,0), (-1,-1), 6),
    ("BOTTOMPADDING", (0,0), (-1,-1), 6),
    ("LEFTPADDING",   (0,0), (-1,-1), 10),
    ("RIGHTPADDING",  (0,0), (-1,-1), 10),
    ("LINEBELOW",     (0,0), (-1,-2), 0.3, GOLD),
    ("BOX",           (0,0), (-1,-1), 0.5, GOLD),
]))
story.append(ptable)
story.append(Spacer(1, 10))

# ═══ BENEFITS ═══
story.append(banner(Paragraph("💛 Garbha Samskara ke Labh (Benefits)", SECTION_HEAD), GREEN, 7, 7))
story.append(Spacer(1, 6))

maa_benefits = [
    "✅ Tanav aur anxiety mein kami",
    "✅ Hormonal balance bana rehta hai",
    "✅ Normal delivery ki sambhavana badhti hai",
    "✅ Aahar aur neend behtar hoti hai",
    "✅ Garbhavastha ka anubhav sukhmay banta hai",
]
shishu_benefits = [
    "✅ Brain Development behtar hota hai",
    "✅ Bacha shant, swasth aur buddhiman hota hai",
    "✅ Janam ke baad sakaratmak sanskar hote hain",
    "✅ Emotional Intelligence aur Creativity badhti hai",
    "✅ Maa aur shishu ka gehri atmic bandhan banta hai",
]

maa_header = Paragraph("<b>🤰 Maa ke liye</b>", style("bh1", fontSize=11, textColor=WHITE, alignment=TA_CENTER, fontName="Helvetica-Bold", leading=15))
shishu_header = Paragraph("<b>👶 Shishu ke liye</b>", style("bh2", fontSize=11, textColor=WHITE, alignment=TA_CENTER, fontName="Helvetica-Bold", leading=15))

col_w2 = (W - 3.6*cm) / 2

# Header row
hrow = Table([[maa_header, shishu_header]], colWidths=[col_w2, col_w2])
hrow.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (0,-1), SAFFRON),
    ("BACKGROUND", (1,0), (1,-1), GREEN),
    ("TOPPADDING",    (0,0), (-1,-1), 7),
    ("BOTTOMPADDING", (0,0), (-1,-1), 7),
    ("LEFTPADDING",   (0,0), (-1,-1), 8),
    ("RIGHTPADDING",  (0,0), (-1,-1), 8),
]))
story.append(hrow)

# Benefit rows
for m, s in zip(maa_benefits, shishu_benefits):
    brow = Table([
        [Paragraph(m, BULLET), Paragraph(s, BULLET)]
    ], colWidths=[col_w2, col_w2])
    brow.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (0,-1), colors.HexColor("#FFF3E5")),
        ("BACKGROUND", (1,0), (1,-1), LIGHT_GREEN),
        ("TOPPADDING",    (0,0), (-1,-1), 5),
        ("BOTTOMPADDING", (0,0), (-1,-1), 5),
        ("LEFTPADDING",   (0,0), (-1,-1), 8),
        ("RIGHTPADDING",  (0,0), (-1,-1), 8),
        ("LINEBELOW",     (0,0), (-1,-1), 0.3, GOLD),
    ]))
    story.append(brow)

story.append(Spacer(1, 10))

# ═══ SESSIONS OFFERED ═══
story.append(banner(Paragraph("📿 Hamare Sessions Mein Kya Milega?", SECTION_HEAD), DARK_SAFFRON, 7, 7))
story.append(Spacer(1, 6))

sessions = [
    ("🌸 Garbha Samskara Classes", "Online / Offline — Guided prenatal program"),
    ("🧘 Meditation & Pranayam",   "Garbhini ke liye vishesh guided sessions"),
    ("🎵 Vedic Mantra Therapy",    "Music therapy aur Vedic mantras"),
    ("🥗 Ayurvedic Diet Plan",     "Month-wise nutrition guidance"),
    ("📖 Shishu Samvaad",          "Shishu se baat karne ki vidhi"),
    ("🌿 Yoga Sessions",           "Safe & easy pregnancy yoga"),
    ("📿 Sapta Sanskara Vidhi",    "Paramparik sanskara margadarshan"),
]

sdata = [[Paragraph(f"<b>{s[0]}</b>", style("sh", fontSize=10, textColor=SAFFRON, fontName="Helvetica-Bold", leading=13)),
          Paragraph(s[1], style("sb", fontSize=10, textColor=TEXT_DARK, fontName="Helvetica", leading=13))] for s in sessions]

col_s1, col_s2 = 6*cm, W - 3.6*cm - 6*cm
stable = Table(sdata, colWidths=[col_s1, col_s2])
stable.setStyle(TableStyle([
    ("ROWBACKGROUNDS", (0,0), (-1,-1), [CREAM, BROWN_LIGHT]),
    ("TOPPADDING",    (0,0), (-1,-1), 6),
    ("BOTTOMPADDING", (0,0), (-1,-1), 6),
    ("LEFTPADDING",   (0,0), (-1,-1), 10),
    ("RIGHTPADDING",  (0,0), (-1,-1), 10),
    ("LINEBELOW",     (0,0), (-1,-2), 0.3, GOLD),
    ("BOX",           (0,0), (-1,-1), 0.5, GOLD),
]))
story.append(stable)
story.append(Spacer(1, 10))

# ═══ FOR WHOM ═══
story.append(banner(Paragraph("🌺 Kisake Liye Hai Yeh Program?", SECTION_HEAD), GREEN, 7, 7))
story.append(Spacer(1, 6))

audiences = [
    "👶  Jo maataein <b>garbhadharana ki yojana</b> bana rahi hain",
    "🤰  Jo maataein <b>pehli ya doosari timahi</b> mein hain",
    "👨‍👩‍👧  <b>Parivaar</b> jo bachche ko sarvashreshtha shuruaat dena chahta hai",
    "💑  <b>Couples</b> jo Conscious Parenting sikhna chahte hain",
]
for a in audiences:
    story.append(Paragraph(a, BULLET))
story.append(Spacer(1, 10))

# ═══ QUOTE ═══
quote_table = Table([[Paragraph(
    '"Ek susanskrit maa — ek sanskarvaan raashtra ki neenv hai."',
    QUOTE)]], colWidths=[W - 3.6*cm])
quote_table.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), LIGHT_GOLD),
    ("TOPPADDING",    (0,0), (-1,-1), 12),
    ("BOTTOMPADDING", (0,0), (-1,-1), 12),
    ("LEFTPADDING",   (0,0), (-1,-1), 20),
    ("RIGHTPADDING",  (0,0), (-1,-1), 20),
    ("BOX",           (0,0), (-1,-1), 1, GOLD),
]))
story.append(quote_table)
story.append(Spacer(1, 10))

# ═══ CONTACT / FOOTER ═══
story.append(banner(Paragraph("📩 Hamse Judiye — Abhi Enroll Karein!", SECTION_HEAD), SAFFRON, 7, 7))
story.append(Spacer(1, 6))

contact_data = [
    [Paragraph("📱 Instagram", style("cl", fontSize=10, textColor=MAROON, alignment=TA_CENTER, fontName="Helvetica-Bold", leading=14)),
     Paragraph("📞 WhatsApp", style("cl2", fontSize=10, textColor=MAROON, alignment=TA_CENTER, fontName="Helvetica-Bold", leading=14)),
     Paragraph("🌐 Website", style("cl3", fontSize=10, textColor=MAROON, alignment=TA_CENTER, fontName="Helvetica-Bold", leading=14))],
    [Paragraph("@YourHandle", CONTACT),
     Paragraph("+91 XXXXX XXXXX", CONTACT),
     Paragraph("www.yourwebsite.com", CONTACT)],
]
col_c = (W - 3.6*cm) / 3
ctable = Table(contact_data, colWidths=[col_c, col_c, col_c])
ctable.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,0), LIGHT_GOLD),
    ("BACKGROUND", (0,1), (-1,1), CREAM),
    ("TOPPADDING",    (0,0), (-1,-1), 7),
    ("BOTTOMPADDING", (0,0), (-1,-1), 7),
    ("LEFTPADDING",   (0,0), (-1,-1), 8),
    ("RIGHTPADDING",  (0,0), (-1,-1), 8),
    ("LINEBEFORE",    (1,0), (1,-1), 0.5, GOLD),
    ("LINEBEFORE",    (2,0), (2,-1), 0.5, GOLD),
    ("BOX",           (0,0), (-1,-1), 0.5, GOLD),
]))
story.append(ctable)
story.append(Spacer(1, 8))

story.append(Paragraph(
    "🌿  Garbha Samskara | Ancient Wisdom • Modern Wellness  🌿",
    style("ft", fontSize=9, textColor=TEXT_MID, alignment=TA_CENTER, fontName="Helvetica-Oblique", leading=13)))

# ═══ BUILD ═══
doc.build(story)
print(f"PDF created: {OUTPUT}")
Running Command

python3 /home/daytona/workspace/garbha-samskara/create_poster.py

Aapka PDF poster taiyaar hai! 🌸

✅ PDF Poster Download Karein:

GarbhaSamskara Poster

PDF Document · PDF


Poster mein kya-kya hai:

SectionDetails
🌸 Header BannerSanskrit title, tagline - saffron background
🌿 Garbha Samskara Kya HaiDefinition + Sanskrit word breakdown
6 Mukhya StambhMansik, Sangeet, Aahar, Adhyayan, Yoga, Adhyatm
💛 Benefits TableMaa ke liye + Shishu ke liye - side by side
📿 Sessions Offered7 program details
🌺 AudienceKisake liye suitable hai
💬 Inspirational QuoteGold bordered quote box
📩 Contact FooterInstagram, WhatsApp, Website placeholders

Customize karna ho toh batayein:
  • Apna Instagram handle, phone number, website add karein
  • Hindi font (Devanagari script) mein chahiye?
  • 2-page version ya A5 size chahiye?

Create an Instagram post carousel version of this content

Running Command

python3 -c "from reportlab.lib.pagesizes import A4; print('reportlab ok')" && py…

Writing File

~/garbha-samskara/create_carousel.py

from PIL import Image, ImageDraw, ImageFont
import os, textwrap, math

OUT_DIR = "/home/daytona/workspace/garbha-samskara/carousel"
os.makedirs(OUT_DIR, exist_ok=True)

SIZE = (1080, 1080)
W, H = SIZE

# ── Colour palette ──────────────────────────────────────────────
SAFFRON      = (232, 121,  44)
DARK_SAFFRON = (176,  76,  10)
DEEP_SAFFRON = (140,  50,   5)
CREAM        = (255, 248, 238)
GOLD         = (212, 160,  23)
LIGHT_GOLD   = (255, 240, 192)
GREEN        = ( 74, 124,  89)
DARK_GREEN   = ( 45,  90,  60)
LIGHT_GREEN  = (232, 245, 238)
MAROON       = (123,  26,  26)
BROWN_LIGHT  = (251, 240, 224)
TEXT_DARK    = ( 43,  26,  10)
TEXT_MID     = ( 90,  58,  26)
WHITE        = (255, 255, 255)
IVORY        = (255, 253, 245)

# ── Font helpers ────────────────────────────────────────────────
def load_font(size, bold=False):
    candidates_bold   = ["/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf",
                         "/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf",
                         "/usr/share/fonts/truetype/freefont/FreeSansBold.ttf"]
    candidates_normal = ["/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf",
                         "/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf",
                         "/usr/share/fonts/truetype/freefont/FreeSans.ttf"]
    pool = candidates_bold if bold else candidates_normal
    for p in pool:
        if os.path.exists(p):
            return ImageFont.truetype(p, size)
    return ImageFont.load_default()

# ── Drawing utilities ────────────────────────────────────────────
def draw_rounded_rect(draw, xy, radius, fill, outline=None, outline_width=2):
    x0, y0, x1, y1 = xy
    draw.rounded_rectangle([x0, y0, x1, y1], radius=radius, fill=fill,
                           outline=outline, width=outline_width)

def draw_text_centered(draw, text, y, font, color, max_width=None, img_w=W):
    if max_width:
        # wrap
        lines = []
        words = text.split()
        line = ""
        for w in words:
            test = (line + " " + w).strip()
            bbox = draw.textbbox((0, 0), test, font=font)
            if bbox[2] <= max_width:
                line = test
            else:
                if line:
                    lines.append(line)
                line = w
        if line:
            lines.append(line)
        for l in lines:
            bbox = draw.textbbox((0, 0), l, font=font)
            tw = bbox[2] - bbox[0]
            draw.text(((img_w - tw) / 2, y), l, font=font, fill=color)
            y += bbox[3] - bbox[1] + 6
        return y
    else:
        bbox = draw.textbbox((0, 0), text, font=font)
        tw = bbox[2] - bbox[0]
        draw.text(((img_w - tw) / 2, y), text, font=font, fill=color)
        return y + (bbox[3] - bbox[1])

def text_height(draw, text, font):
    bbox = draw.textbbox((0, 0), text, font=font)
    return bbox[3] - bbox[1]

def wrap_lines(draw, text, font, max_width):
    words = text.split()
    lines, line = [], ""
    for w in words:
        test = (line + " " + w).strip()
        bbox = draw.textbbox((0, 0), test, font=font)
        if bbox[2] <= max_width:
            line = test
        else:
            if line: lines.append(line)
            line = w
    if line: lines.append(line)
    return lines

def draw_wrapped_text(draw, text, x, y, font, color, max_width, line_gap=8):
    lines = wrap_lines(draw, text, font, max_width)
    for l in lines:
        draw.text((x, y), l, font=font, fill=color)
        bh = draw.textbbox((0,0), l, font=font)
        y += bh[3] - bh[1] + line_gap
    return y

def ornament_line(draw, y, color=GOLD, margin=80, thickness=2):
    draw.line([(margin, y), (W - margin, y)], fill=color, width=thickness)

def dot_row(draw, y, color=GOLD, n=7):
    spacing = 22
    start = W // 2 - (n - 1) * spacing // 2
    for i in range(n):
        x = start + i * spacing
        draw.ellipse([(x-4, y-4), (x+4, y+4)], fill=color)

def gradient_background(img, top_color, bottom_color):
    """Vertical gradient fill."""
    draw = ImageDraw.Draw(img)
    for y in range(H):
        t = y / H
        r = int(top_color[0] + (bottom_color[0] - top_color[0]) * t)
        g = int(top_color[1] + (bottom_color[1] - top_color[1]) * t)
        b = int(top_color[2] + (bottom_color[2] - top_color[2]) * t)
        draw.line([(0, y), (W, y)], fill=(r, g, b))

def add_slide_number(draw, n, total=8):
    font = load_font(22, bold=False)
    txt = f"{n} / {total}"
    bbox = draw.textbbox((0,0), txt, font=font)
    tw = bbox[2] - bbox[0]
    draw.text((W - tw - 36, H - 48), txt, font=font, fill=(*GOLD, 180))

def corner_ornaments(draw, color=GOLD, size=30, margin=22):
    lw = 3
    m = margin
    # top-left
    draw.line([(m, m), (m+size, m)], fill=color, width=lw)
    draw.line([(m, m), (m, m+size)], fill=color, width=lw)
    # top-right
    draw.line([(W-m, m), (W-m-size, m)], fill=color, width=lw)
    draw.line([(W-m, m), (W-m, m+size)], fill=color, width=lw)
    # bottom-left
    draw.line([(m, H-m), (m+size, H-m)], fill=color, width=lw)
    draw.line([(m, H-m), (m, H-m-size)], fill=color, width=lw)
    # bottom-right
    draw.line([(W-m, H-m), (W-m-size, H-m)], fill=color, width=lw)
    draw.line([(W-m, H-m), (W-m, H-m-size)], fill=color, width=lw)

# ════════════════════════════════════════════════════════════════
# SLIDE 1 — Cover / Title
# ════════════════════════════════════════════════════════════════
def slide_01():
    img = Image.new("RGB", SIZE, CREAM)
    gradient_background(img, (255, 245, 225), (240, 200, 150))
    draw = ImageDraw.Draw(img)
    corner_ornaments(draw, color=SAFFRON, size=50)

    # top decorative band
    draw.rectangle([(0, 0), (W, 14)], fill=SAFFRON)
    draw.rectangle([(0, 14), (W, 20)], fill=GOLD)

    # large emoji / icon area
    f_em = load_font(110, bold=False)
    emoji = "🌸"
    try:
        draw.text((W//2 - 65, 90), emoji, font=f_em, fill=SAFFRON)
    except:
        draw.ellipse([(W//2-60, 90), (W//2+60, 210)], fill=SAFFRON)

    y = 240
    # Sanskrit / Hindi title
    f_title = load_font(76, bold=True)
    draw_text_centered(draw, "Garbha", y, f_title, MAROON)
    y += 90
    draw_text_centered(draw, "Samskara", y, f_title, DARK_SAFFRON)
    y += 96

    ornament_line(draw, y, GOLD, margin=160)
    y += 18
    dot_row(draw, y, GOLD)
    y += 28

    f_sub = load_font(34, bold=False)
    draw_text_centered(draw, "Shishu ke Jeevan ki", y, f_sub, TEXT_MID, max_width=780)
    y += 44
    draw_text_centered(draw, "Shubh Shuruaat", y, f_sub, TEXT_MID, max_width=780)
    y += 58

    f_tag = load_font(26, bold=False)
    draw_text_centered(draw, "Ancient Indian Prenatal Wisdom", y, f_tag, GREEN)
    y += 36
    draw_text_centered(draw, "Womb to Wisdom", y, f_tag, GREEN)

    # bottom band
    draw.rectangle([(0, H-60), (W, H)], fill=SAFFRON)
    f_foot = load_font(24, bold=True)
    draw_text_centered(draw, "Swipe to know more  >>>", H-42, f_foot, WHITE)
    draw.rectangle([(0, H-66), (W, H-62)], fill=GOLD)

    add_slide_number(draw, 1)
    img.save(f"{OUT_DIR}/slide_01_cover.jpg", quality=95)
    print("Slide 1 done")

# ════════════════════════════════════════════════════════════════
# SLIDE 2 — What is Garbha Samskara
# ════════════════════════════════════════════════════════════════
def slide_02():
    img = Image.new("RGB", SIZE, CREAM)
    gradient_background(img, (255, 252, 240), (245, 235, 210))
    draw = ImageDraw.Draw(img)
    corner_ornaments(draw)

    # header bar
    draw_rounded_rect(draw, (40, 40, W-40, 150), 18, SAFFRON)
    f_h = load_font(42, bold=True)
    draw_text_centered(draw, "Garbha Samskara Kya Hai?", 72, f_h, WHITE)

    y = 180
    f_body = load_font(29, bold=False)
    f_bold = load_font(29, bold=True)

    # definition box
    draw_rounded_rect(draw, (60, y, W-60, y+200), 14, BROWN_LIGHT, outline=GOLD, outline_width=2)
    draw_wrapped_text(draw,
        "Garbha Samskara Bharat ki prachin aur vaigyanik prenatal dekhbhal paddhati hai. "
        "Maa ke vichar, bhavnaein, aahar aur jeevanshaili — shishu ke mastishk, "
        "vyaktitva aur swasthya ko gehrai se prabhavit karti hain.",
        90, y + 22, f_body, TEXT_DARK, max_width=900, line_gap=10)
    y += 220

    # two word boxes
    box_w = 430
    # GARBHA box
    draw_rounded_rect(draw, (60, y, 60+box_w, y+145), 14, (255,240,210), outline=SAFFRON, outline_width=3)
    f_big = load_font(46, bold=True)
    draw.text((60 + box_w//2 - 80, y+14), "GARBHA", font=f_big, fill=DARK_SAFFRON)
    f_sm = load_font(26, bold=False)
    draw_wrapped_text(draw, "Maa ka Garbh (Womb)", 90, y+78, f_sm, TEXT_MID, max_width=box_w-40)
    draw_wrapped_text(draw, "The sacred womb", 90, y+110, f_sm, TEXT_MID, max_width=box_w-40)

    # SANSKARA box
    sx = W - 60 - box_w
    draw_rounded_rect(draw, (sx, y, sx+box_w, y+145), 14, LIGHT_GREEN, outline=GREEN, outline_width=3)
    draw.text((sx + box_w//2 - 110, y+14), "SANSKARA", font=f_big, fill=DARK_GREEN)
    draw_wrapped_text(draw, "Sakaratmak Samskar", sx+20, y+78, f_sm, TEXT_MID, max_width=box_w-40)
    draw_wrapped_text(draw, "Positive Impressions", sx+20, y+110, f_sm, TEXT_MID, max_width=box_w-40)
    y += 165

    ornament_line(draw, y+10, GOLD)
    y += 30

    f_q = load_font(27, bold=False)
    italic_text = '"Garbha Samskara is a mental & emotional diet'
    italic_text2 = 'of pregnant mothers during pregnancy."'
    draw_text_centered(draw, italic_text, y+10, f_q, MAROON, max_width=900)
    draw_text_centered(draw, italic_text2, y+50, f_q, MAROON, max_width=900)

    # bottom
    draw.rectangle([(0, H-60), (W, H)], fill=GREEN)
    f_foot = load_font(22, bold=True)
    draw_text_centered(draw, "Ancient Wisdom | Ayurveda | Vedic Science", H-40, f_foot, WHITE)

    add_slide_number(draw, 2)
    img.save(f"{OUT_DIR}/slide_02_what.jpg", quality=95)
    print("Slide 2 done")

# ════════════════════════════════════════════════════════════════
# SLIDE 3 — 6 Pillars
# ════════════════════════════════════════════════════════════════
def slide_03():
    img = Image.new("RGB", SIZE, CREAM)
    gradient_background(img, (255, 248, 235), (240, 220, 185))
    draw = ImageDraw.Draw(img)
    corner_ornaments(draw, color=GREEN)

    draw_rounded_rect(draw, (40, 40, W-40, 148), 18, DARK_SAFFRON)
    f_h = load_font(40, bold=True)
    draw_text_centered(draw, "6 Mukhya Stambh", 65, f_h, WHITE)
    f_sh = load_font(26, bold=False)
    draw_text_centered(draw, "Six Pillars of Garbha Samskara", 112, f_sh, LIGHT_GOLD)

    pillars = [
        ("🧘", "Mansik Shakti",    "Meditation & Positive Vichar"),
        ("🎵", "Sangeet Therapy",  "Vedic Mantras & Music"),
        ("🥗", "Sattvic Aahar",    "Ayurvedic Nutrition"),
        ("📖", "Adhyayan",          "Inspiring Books & Stories"),
        ("🌿", "Yoga & Pranayam",  "Safe Pregnancy Exercises"),
        ("🙏", "Adhyatm",           "Puja, Mantra & Samskara"),
    ]

    col_w = (W - 120) // 3
    row_h = 240
    y_start = 170
    colors_bg = [(255, 240, 215), LIGHT_GREEN, (255, 240, 215),
                 LIGHT_GREEN, (255, 240, 215), LIGHT_GREEN]
    colors_accent = [SAFFRON, GREEN, SAFFRON, GREEN, SAFFRON, GREEN]

    for i, (em, title, desc) in enumerate(pillars):
        col = i % 3
        row = i // 3
        x0 = 60 + col * (col_w + 10)
        y0 = y_start + row * (row_h + 12)
        x1, y1 = x0 + col_w, y0 + row_h

        draw_rounded_rect(draw, (x0, y0, x1, y1), 16,
                          colors_bg[i], outline=colors_accent[i], outline_width=2)

        # accent top stripe
        draw_rounded_rect(draw, (x0, y0, x1, y0+6), 0, colors_accent[i])

        # emoji
        f_em = load_font(52, bold=False)
        em_bx = draw.textbbox((0,0), em, font=f_em)
        ex = x0 + (col_w - (em_bx[2]-em_bx[0])) // 2
        try:
            draw.text((ex, y0+18), em, font=f_em, fill=colors_accent[i])
        except:
            draw.ellipse([(x0+col_w//2-20, y0+18), (x0+col_w//2+20, y0+58)], fill=colors_accent[i])

        # title
        f_t = load_font(27, bold=True)
        draw_text_centered(draw, title, y0+82, f_t, TEXT_DARK, max_width=col_w-16, img_w=x0+col_w//2 + 200)
        # center properly
        tb = draw.textbbox((0,0), title, font=f_t)
        tw = tb[2]-tb[0]
        draw.text((x0 + (col_w-tw)//2, y0+82), title, font=f_t, fill=TEXT_DARK)

        # desc
        f_d = load_font(22, bold=False)
        lines = wrap_lines(draw, desc, f_d, col_w - 20)
        dy = y0 + 120
        for l in lines:
            lb = draw.textbbox((0,0), l, font=f_d)
            lw = lb[2]-lb[0]
            draw.text((x0 + (col_w-lw)//2, dy), l, font=f_d, fill=TEXT_MID)
            dy += lb[3]-lb[1]+5

    draw.rectangle([(0, H-60), (W, H)], fill=DARK_SAFFRON)
    f_foot = load_font(22, bold=True)
    draw_text_centered(draw, "Garbha Samskara — Holistic Prenatal Care", H-40, f_foot, WHITE)

    add_slide_number(draw, 3)
    img.save(f"{OUT_DIR}/slide_03_pillars.jpg", quality=95)
    print("Slide 3 done")

# ════════════════════════════════════════════════════════════════
# SLIDE 4 — Benefits for Maa
# ════════════════════════════════════════════════════════════════
def slide_04():
    img = Image.new("RGB", SIZE, CREAM)
    gradient_background(img, (255, 248, 235), (255, 225, 185))
    draw = ImageDraw.Draw(img)
    corner_ornaments(draw, color=SAFFRON)

    draw_rounded_rect(draw, (40, 40, W-40, 148), 18, SAFFRON)
    f_h = load_font(40, bold=True)
    draw_text_centered(draw, "Maa ke liye Labh", 62, f_h, WHITE)
    f_sh = load_font(27, bold=False)
    draw_text_centered(draw, "Benefits for the Mother", 112, f_sh, LIGHT_GOLD)

    benefits = [
        ("Tanav & Anxiety mein Kami",    "Meditation aur pranayam se man shant rehta hai"),
        ("Hormonal Balance",              "Ayurvedic aahar aur yoga se hormones balanced rehte hain"),
        ("Normal Delivery ki Sambhavana", "Regular garbha samskara practice se body tayaar hoti hai"),
        ("Behtar Neend aur Aahar",        "Sattvic lifestyle se neend aur bhookh sudharti hai"),
        ("Sukhmay Garbhavastha",          "Positive vichar se poora anubhav anandmay banta hai"),
    ]

    y = 170
    for i, (title, desc) in enumerate(benefits):
        bg = (255, 245, 225) if i % 2 == 0 else BROWN_LIGHT
        draw_rounded_rect(draw, (60, y, W-60, y+142), 14, bg, outline=SAFFRON, outline_width=2)

        # number circle
        draw.ellipse([(72, y+20), (122, y+70)], fill=SAFFRON)
        f_num = load_font(30, bold=True)
        nb = draw.textbbox((0,0), str(i+1), font=f_num)
        nw, nh = nb[2]-nb[0], nb[3]-nb[1]
        draw.text((97-nw//2, y+20+(50-nh)//2), str(i+1), font=f_num, fill=WHITE)

        # check mark
        draw.text((72, y+80), "✅", font=load_font(30), fill=GREEN)

        # title + desc
        f_t = load_font(30, bold=True)
        draw.text((140, y+18), title, font=f_t, fill=MAROON)
        f_d = load_font(25, bold=False)
        draw_wrapped_text(draw, desc, 140, y+62, f_d, TEXT_MID, max_width=W-220, line_gap=6)

        y += 152

    draw.rectangle([(0, H-60), (W, H)], fill=SAFFRON)
    f_foot = load_font(22, bold=True)
    draw_text_centered(draw, "Swipe next for Shishu ke Labh  >>>", H-40, f_foot, WHITE)

    add_slide_number(draw, 4)
    img.save(f"{OUT_DIR}/slide_04_maa_benefits.jpg", quality=95)
    print("Slide 4 done")

# ════════════════════════════════════════════════════════════════
# SLIDE 5 — Benefits for Shishu
# ════════════════════════════════════════════════════════════════
def slide_05():
    img = Image.new("RGB", SIZE, CREAM)
    gradient_background(img, (240, 255, 248), (210, 240, 225))
    draw = ImageDraw.Draw(img)
    corner_ornaments(draw, color=GREEN)

    draw_rounded_rect(draw, (40, 40, W-40, 148), 18, GREEN)
    f_h = load_font(40, bold=True)
    draw_text_centered(draw, "Shishu ke liye Labh", 62, f_h, WHITE)
    f_sh = load_font(27, bold=False)
    draw_text_centered(draw, "Benefits for the Baby", 112, f_sh, LIGHT_GOLD)

    benefits = [
        ("Brain Development",             "Vedic music aur mantras se shishu ka mastishk vikasit hota hai"),
        ("Shant aur Swasth Shishu",        "Positive vichar aur calm environment se bacha khush rehta hai"),
        ("Sakaratmak Sanskar",             "Janm ke baad bhi bacha acche samskaaron ke saath bada hota hai"),
        ("Emotional Intelligence",         "Maa ki bhavnaein shishu ki samvedansheelta badhati hain"),
        ("Gehra Maa-Shishu Bandhan",       "Garbha samvaad se atmic rishta pahle hi ban jata hai"),
    ]

    y = 170
    for i, (title, desc) in enumerate(benefits):
        bg = LIGHT_GREEN if i % 2 == 0 else (245, 255, 250)
        draw_rounded_rect(draw, (60, y, W-60, y+142), 14, bg, outline=GREEN, outline_width=2)

        draw.ellipse([(72, y+20), (122, y+70)], fill=GREEN)
        f_num = load_font(30, bold=True)
        nb = draw.textbbox((0,0), str(i+1), font=f_num)
        nw, nh = nb[2]-nb[0], nb[3]-nb[1]
        draw.text((97-nw//2, y+20+(50-nh)//2), str(i+1), font=f_num, fill=WHITE)

        draw.text((72, y+80), "✅", font=load_font(30), fill=SAFFRON)

        f_t = load_font(30, bold=True)
        draw.text((140, y+18), title, font=f_t, fill=DARK_GREEN)
        f_d = load_font(25, bold=False)
        draw_wrapped_text(draw, desc, 140, y+62, f_d, TEXT_MID, max_width=W-220, line_gap=6)

        y += 152

    draw.rectangle([(0, H-60), (W, H)], fill=GREEN)
    f_foot = load_font(22, bold=True)
    draw_text_centered(draw, "Garbha Samskara — Baby's First School", H-40, f_foot, WHITE)

    add_slide_number(draw, 5)
    img.save(f"{OUT_DIR}/slide_05_shishu_benefits.jpg", quality=95)
    print("Slide 5 done")

# ════════════════════════════════════════════════════════════════
# SLIDE 6 — Sessions / Program
# ════════════════════════════════════════════════════════════════
def slide_06():
    img = Image.new("RGB", SIZE, CREAM)
    gradient_background(img, (255, 248, 230), (245, 230, 200))
    draw = ImageDraw.Draw(img)
    corner_ornaments(draw, color=DARK_SAFFRON)

    draw_rounded_rect(draw, (40, 40, W-40, 148), 18, DARK_SAFFRON)
    f_h = load_font(38, bold=True)
    draw_text_centered(draw, "Hamare Sessions Mein", 58, f_h, WHITE)
    draw_text_centered(draw, "Kya Milega?", 104, f_h, LIGHT_GOLD)

    sessions = [
        ("🌸", "Garbha Samskara Classes",  "Online / Offline — Guided prenatal program"),
        ("🧘", "Meditation & Pranayam",     "Garbhini ke liye special guided sessions"),
        ("🎵", "Vedic Mantra Therapy",      "Music therapy aur Vedic mantras"),
        ("🥗", "Ayurvedic Diet Plan",       "Month-wise trimester nutrition guidance"),
        ("📖", "Shishu Samvaad",            "Womb communication techniques"),
        ("🌿", "Safe Pregnancy Yoga",       "Easy yoga sessions designed for mothers"),
        ("📿", "Sapta Sanskara Vidhi",      "Traditional samskara ceremony guidance"),
    ]

    y = 165
    col_w_left = 80
    for i, (em, title, desc) in enumerate(sessions):
        bg = (255, 244, 222) if i % 2 == 0 else BROWN_LIGHT
        draw_rounded_rect(draw, (60, y, W-60, y+100), 12, bg, outline=GOLD, outline_width=1)

        f_em = load_font(36, bold=False)
        try:
            draw.text((76, y+18), em, font=f_em)
        except:
            draw.ellipse([(76, y+18), (110, y+52)], fill=SAFFRON)

        f_t = load_font(28, bold=True)
        draw.text((130, y+14), title, font=f_t, fill=MAROON)
        f_d = load_font(23, bold=False)
        draw.text((130, y+52), desc, font=f_d, fill=TEXT_MID)

        y += 108

    draw.rectangle([(0, H-60), (W, H)], fill=DARK_SAFFRON)
    f_foot = load_font(22, bold=True)
    draw_text_centered(draw, "Join our Program — Swipe for Details  >>>", H-40, f_foot, WHITE)

    add_slide_number(draw, 6)
    img.save(f"{OUT_DIR}/slide_06_sessions.jpg", quality=95)
    print("Slide 6 done")

# ════════════════════════════════════════════════════════════════
# SLIDE 7 — For Whom + Quote
# ════════════════════════════════════════════════════════════════
def slide_07():
    img = Image.new("RGB", SIZE, CREAM)
    gradient_background(img, (255, 250, 240), (245, 230, 205))
    draw = ImageDraw.Draw(img)
    corner_ornaments(draw, color=GOLD)

    draw_rounded_rect(draw, (40, 40, W-40, 140), 18, GREEN)
    f_h = load_font(40, bold=True)
    draw_text_centered(draw, "Kisake Liye Hai Yeh Program?", 75, f_h, WHITE)
    f_sh = load_font(25, bold=False)
    draw_text_centered(draw, "Who Should Join?", 120, f_sh, LIGHT_GOLD)

    audiences = [
        ("👶", "Garbhadharana ki Taiyaari",  "Jo maataein baby ke liye tayari kar rahi hain"),
        ("🤰", "Pehli / Doosari Timahi",      "Jo maataein abhi pregnant hain"),
        ("👨\u200d👩\u200d👧", "Poora Parivaar",    "Jo parivaar bachche ko best shuruaat dena chahta hai"),
        ("💑", "Conscious Couples",            "Jo couples Conscious Parenting sikhna chahte hain"),
    ]

    y = 160
    for em, title, desc in audiences:
        draw_rounded_rect(draw, (60, y, W-60, y+130), 14,
                          (255, 248, 230), outline=GOLD, outline_width=2)
        f_em = load_font(48, bold=False)
        try:
            draw.text((80, y+24), em, font=f_em)
        except:
            draw.ellipse([(80, y+24), (128, y+72)], fill=GREEN)

        f_t = load_font(30, bold=True)
        draw.text((148, y+18), title, font=f_t, fill=DARK_GREEN)
        f_d = load_font(25, bold=False)
        draw_wrapped_text(draw, desc, 148, y+60, f_d, TEXT_MID, max_width=W-230, line_gap=6)
        y += 140

    # Quote
    y += 10
    draw_rounded_rect(draw, (60, y, W-60, y+110), 16, LIGHT_GOLD, outline=GOLD, outline_width=2)
    f_q = load_font(27, bold=False)
    draw_text_centered(draw, '"Ek susanskrit maa —', y+16, f_q, MAROON, max_width=880)
    draw_text_centered(draw, 'ek sanskarvaan raashtra ki neenv hai."', y+52, f_q, MAROON, max_width=880)
    dot_row(draw, y+92, GOLD)

    draw.rectangle([(0, H-60), (W, H)], fill=GREEN)
    f_foot = load_font(22, bold=True)
    draw_text_centered(draw, "Swipe for Contact Details  >>>", H-40, f_foot, WHITE)

    add_slide_number(draw, 7)
    img.save(f"{OUT_DIR}/slide_07_audience.jpg", quality=95)
    print("Slide 7 done")

# ════════════════════════════════════════════════════════════════
# SLIDE 8 — Contact / CTA
# ════════════════════════════════════════════════════════════════
def slide_08():
    img = Image.new("RGB", SIZE, CREAM)
    gradient_background(img, (255, 248, 225), (232, 200, 140))
    draw = ImageDraw.Draw(img)
    corner_ornaments(draw, color=SAFFRON, size=60)

    # top
    draw.rectangle([(0, 0), (W, 16)], fill=SAFFRON)
    draw.rectangle([(0, 16), (W, 24)], fill=GOLD)

    y = 60
    f_big = load_font(58, bold=True)
    draw_text_centered(draw, "Hamse Judiye!", y, f_big, MAROON)
    y += 72
    f_sub = load_font(30, bold=False)
    draw_text_centered(draw, "Abhi Enroll Karein — Seedha DM Karein", y, f_sub, DARK_SAFFRON)
    y += 56

    ornament_line(draw, y, GOLD)
    y += 26
    dot_row(draw, y, SAFFRON)
    y += 36

    # contact boxes
    contacts = [
        ("📱", "Instagram",  "@YourHandle",         SAFFRON),
        ("📞", "WhatsApp",   "+91 XXXXX XXXXX",      GREEN),
        ("🌐", "Website",    "www.yourwebsite.com",  DARK_SAFFRON),
        ("📍", "Location",   "Aapka Shehar, India",  MAROON),
    ]

    box_w = (W - 140) // 2
    box_h = 175
    for i, (em, label, val, col) in enumerate(contacts):
        col_n = i % 2
        row_n = i // 2
        x0 = 60 + col_n * (box_w + 20)
        y0 = y + row_n * (box_h + 16)
        x1, y1 = x0 + box_w, y0 + box_h

        draw_rounded_rect(draw, (x0, y0, x1, y1), 16, WHITE, outline=col, outline_width=3)
        draw_rounded_rect(draw, (x0, y0, x1, y0+8), 0, col)

        f_em = load_font(44, bold=False)
        em_bx = draw.textbbox((0,0), em, font=f_em)
        ew = em_bx[2]-em_bx[0]
        try:
            draw.text((x0 + (box_w-ew)//2, y0+20), em, font=f_em)
        except:
            draw.ellipse([(x0+box_w//2-20, y0+20), (x0+box_w//2+20, y0+60)], fill=col)

        f_lbl = load_font(26, bold=True)
        lb = draw.textbbox((0,0), label, font=f_lbl)
        lw = lb[2]-lb[0]
        draw.text((x0+(box_w-lw)//2, y0+74), label, font=f_lbl, fill=col)

        f_val = load_font(23, bold=False)
        vb = draw.textbbox((0,0), val, font=f_val)
        vw = vb[2]-vb[0]
        draw.text((x0+(box_w-vw)//2, y0+110), val, font=f_val, fill=TEXT_DARK)

    y += 2 * box_h + 36

    ornament_line(draw, y, GOLD)
    y += 22
    f_tag = load_font(26, bold=True)
    draw_text_centered(draw, "🌿 Garbha Samskara | Ancient Wisdom • Modern Wellness 🌿", y, f_tag, TEXT_MID)
    y += 40

    # hashtags
    f_hash = load_font(21, bold=False)
    draw_text_centered(draw, "#GarbhaSamskara  #AyurvedicPregnancy  #VedicMotherhood", y, f_hash, GREEN)
    y += 30
    draw_text_centered(draw, "#ConsciousParenting  #HappyPregnancy  #PregnancyWellness", y, f_hash, GREEN)

    draw.rectangle([(0, H-16), (W, H)], fill=SAFFRON)
    draw.rectangle([(0, H-24), (W, H-16)], fill=GOLD)

    add_slide_number(draw, 8)
    img.save(f"{OUT_DIR}/slide_08_contact.jpg", quality=95)
    print("Slide 8 done")

# ════════════════════════════════════════════════════════════════
# RUN ALL
# ════════════════════════════════════════════════════════════════
slide_01()
slide_02()
slide_03()
slide_04()
slide_05()
slide_06()
slide_07()
slide_08()

# Combine into single PDF for download
from reportlab.pdfgen import canvas as rl_canvas
from reportlab.lib.pagesizes import letter
from PIL import Image as PILImage

pdf_path = "/home/daytona/workspace/garbha-samskara/GarbhaSamskara_Carousel.pdf"
slides = sorted([f"{OUT_DIR}/{f}" for f in os.listdir(OUT_DIR) if f.endswith('.jpg')])

c = rl_canvas.Canvas(pdf_path, pagesize=(1080, 1080))
for slide_path in slides:
    c.drawImage(slide_path, 0, 0, width=1080, height=1080)
    c.showPage()
c.save()
print(f"\nAll slides done! PDF: {pdf_path}")
print(f"Individual JPGs: {OUT_DIR}/")
Running Command

python3 /home/daytona/workspace/garbha-samskara/create_carousel.py

Saare 8 slides taiyaar hain! 🎉

✅ Instagram Carousel — Download Links

📦 Ek PDF mein saare slides (easy preview):

GarbhaSamskara Carousel

PDF Document · PDF

🖼️ Individual JPG Slides (1080x1080 — Instagram Ready):

SlideTopicDownload
1Cover / Title

slide 01 cover

Image · JPG

2Garbha Samskara Kya Hai

slide 02 what

Image · JPG

36 Mukhya Stambh (Pillars)

slide 03 pillars

Image · JPG

4Maa ke Labh (Benefits)

slide 04 maa benefits

Image · JPG

5Shishu ke Labh (Benefits)

slide 05 shishu benefits

Image · JPG

6Sessions & Program

slide 06 sessions

Image · JPG

7Audience + Quote

slide 07 audience

Image · JPG

8Contact / CTA

slide 08 contact

Image · JPG


Design features:

  • 1080x1080px - Instagram ka perfect size
  • Warm saffron, green & gold color palette - spiritual aur professional dono
  • Har slide mein corner ornaments, gradient background, rounded cards
  • Slide numbers bottom-right mein
  • Last slide pe contact details + hashtags
Customize karna ho toh - apna Instagram handle, phone number aur website Slide 8 mein update kar sakte hain. Batayein! 🌸

Make a comparison poster: Garbha Samskara vs Modern Prenatal Care

Writing File

~/garbha-samskara/create_comparison.py

from PIL import Image, ImageDraw, ImageFont
import os

OUT = "/home/daytona/workspace/garbha-samskara/GarbhaSamskara_vs_ModernCare.jpg"
W, H = 1080, 1440   # portrait — ideal for Instagram & print

# ── Palette ──────────────────────────────────────────────────────
SAFFRON      = (220, 100,  20)
DEEP_SAFFRON = (170,  60,   5)
LIGHT_SAFFRON= (255, 235, 200)
GOLD         = (200, 155,  15)
LIGHT_GOLD   = (255, 242, 185)
TEAL         = ( 30, 115, 120)
DEEP_TEAL    = ( 15,  80,  88)
LIGHT_TEAL   = (220, 245, 248)
CREAM        = (255, 252, 243)
OFF_WHITE    = (248, 245, 238)
TEXT_DARK    = ( 30,  18,   6)
TEXT_MID     = ( 80,  55,  25)
TEAL_TEXT    = ( 15,  70,  80)
WHITE        = (255, 255, 255)
DIVIDER      = (200, 180, 140)
BOTH_BG      = (240, 252, 245)
BOTH_ACCENT  = ( 60, 160,  80)

# ── Font loader ──────────────────────────────────────────────────
def font(size, bold=False):
    paths_b = ["/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf",
               "/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf"]
    paths_n = ["/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf",
               "/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf"]
    for p in (paths_b if bold else paths_n):
        if os.path.exists(p):
            return ImageFont.truetype(p, size)
    return ImageFont.load_default()

# ── Helpers ──────────────────────────────────────────────────────
def rr(draw, xy, r, fill, outline=None, ow=2):
    draw.rounded_rectangle(xy, radius=r, fill=fill,
                           outline=outline, width=ow)

def cx(draw, text, y, fnt, color, x0=0, x1=W):
    bb = draw.textbbox((0,0), text, font=fnt)
    tw = bb[2]-bb[0]
    draw.text((x0 + (x1-x0-tw)//2, y), text, font=fnt, fill=color)

def wrap(draw, text, fnt, max_w):
    words, lines, line = text.split(), [], ""
    for w in words:
        test = (line+" "+w).strip()
        if draw.textbbox((0,0), test, font=fnt)[2] <= max_w:
            line = test
        else:
            if line: lines.append(line)
            line = w
    if line: lines.append(line)
    return lines

def draw_wrap(draw, text, x, y, fnt, color, max_w, gap=7):
    for l in wrap(draw, text, fnt, max_w):
        draw.text((x, y), l, font=fnt, fill=color)
        y += draw.textbbox((0,0), l, font=fnt)[3] + gap
    return y

def gradient(img, top, bot, x0=0, x1=None):
    draw = ImageDraw.Draw(img)
    if x1 is None: x1 = W
    for y in range(H):
        t = y/H
        r = int(top[0]+(bot[0]-top[0])*t)
        g = int(top[1]+(bot[1]-top[1])*t)
        b = int(top[2]+(bot[2]-top[2])*t)
        draw.line([(x0,y),(x1,y)], fill=(r,g,b))

def vgradient_col(img, top, bot, x0, x1, y0, y1):
    """Vertical gradient for a column region."""
    draw = ImageDraw.Draw(img)
    for y in range(y0, y1):
        t = (y-y0)/(y1-y0)
        r = int(top[0]+(bot[0]-top[0])*t)
        g = int(top[1]+(bot[1]-top[1])*t)
        b = int(top[2]+(bot[2]-top[2])*t)
        draw.line([(x0,y),(x1,y)], fill=(r,g,b))

def ornament_h(draw, y, margin=60, color=GOLD, w=2):
    draw.line([(margin,y),(W-margin,y)], fill=color, width=w)

def diamonds(draw, y, color=GOLD, n=9):
    sp = 26; sx = W//2 - (n-1)*sp//2
    for i in range(n):
        x = sx + i*sp
        pts = [(x, y-6),(x+6,y),(x,y+6),(x-6,y)]
        draw.polygon(pts, fill=color)

# ════════════════════════════════════════════════════════════════
img = Image.new("RGB", (W,H), CREAM)
draw = ImageDraw.Draw(img)

# ── BACKGROUND subtle texture ────────────────────────────────────
gradient(img, (255,252,243), (245,235,215))

# ════════════════════════════════════════════════════════════════
# HEADER
# ════════════════════════════════════════════════════════════════
# Full-width header band with split colour
vgradient_col(img, DEEP_SAFFRON, SAFFRON, 0, W, 0, 140)
draw = ImageDraw.Draw(img)

# Gold rule
draw.rectangle([(0,140),(W,148)], fill=GOLD)

f_htitle = font(44, bold=True)
f_hsub   = font(24, bold=False)

cx(draw, "Garbha Samskara  vs  Modern Prenatal Care", 22, f_htitle, WHITE)
cx(draw, "A Holistic Comparison — Ancient Wisdom Meets Modern Science", 82, f_hsub, LIGHT_GOLD)

# ════════════════════════════════════════════════════════════════
# COLUMN HEADERS
# ════════════════════════════════════════════════════════════════
PAD   = 28          # outer margin
MID   = W//2        # 540
GAP   = 14          # gap around centre divider
CW    = MID - PAD - GAP//2   # column width  ≈ 485

y = 160

# Left col header — Garbha Samskara
rr(draw, (PAD, y, MID-GAP//2, y+88), 14, SAFFRON)
f_col = font(30, bold=True)
f_col2= font(20, bold=False)
cx(draw, "🌿  Garbha Samskara", y+14, f_col,  WHITE, PAD, MID-GAP//2)
cx(draw, "Ancient Indian Prenatal Wisdom", y+52, f_col2, LIGHT_GOLD, PAD, MID-GAP//2)

# Right col header — Modern Prenatal
rr(draw, (MID+GAP//2, y, W-PAD, y+88), 14, TEAL)
cx(draw, "🏥  Modern Prenatal Care", y+14, f_col,  WHITE, MID+GAP//2, W-PAD)
cx(draw, "Contemporary Medical Approach", y+52, f_col2, (190,240,245), MID+GAP//2, W-PAD)

y += 102

# ════════════════════════════════════════════════════════════════
# COMPARISON ROWS
# ════════════════════════════════════════════════════════════════
rows = [
    {
        "category": "📌 Foundation",
        "gs":  "Rooted in Ayurveda, Vedas & 5000+ year-old Indian tradition",
        "mod": "Based on evidence-based medicine, clinical research & obstetrics",
    },
    {
        "category": "🎯 Goal",
        "gs":  "Holistic well-being of maa & shishu — body, mind, soul & spirit",
        "mod": "Medical safety, complication prevention & healthy birth outcomes",
    },
    {
        "category": "🧠 Approach",
        "gs":  "Mind-body-soul integration; maa's emotions shape the baby's mind",
        "mod": "Physical monitoring: scans, blood tests, medications, supplements",
    },
    {
        "category": "🥗 Nutrition",
        "gs":  "Sattvic, seasonal Ayurvedic diet with herbs like Shatavari & Ashwagandha",
        "mod": "Folic acid, iron, calcium, prenatal vitamins & balanced macros",
    },
    {
        "category": "🎵 Baby Connection",
        "gs":  "Vedic mantras, classical music, stories & direct womb communication",
        "mod": "Ultrasound bonding, heartbeat monitoring & prenatal education classes",
    },
    {
        "category": "🧘 Wellness Practices",
        "gs":  "Yoga, pranayama, meditation, pooja & positive affirmations daily",
        "mod": "Prenatal exercise, physiotherapy, counselling & breathing techniques",
    },
    {
        "category": "👶 Baby Development",
        "gs":  "Focuses on sanskar, intelligence, emotional & spiritual development",
        "mod": "Focuses on physical growth, organ formation, genetic screening",
    },
    {
        "category": "🌙 Mental Health",
        "gs":  "Inner peace through spirituality; no separation of mind & body",
        "mod": "Screening for depression/anxiety; therapy & medication if needed",
    },
    {
        "category": "👨‍👩‍👧 Family Role",
        "gs":  "Entire family participates — partner, parents, grandparents involved",
        "mod": "Primarily mother & doctor; partner included in birthing classes",
    },
    {
        "category": "💰 Accessibility",
        "gs":  "Low cost; home-based practices; no equipment needed",
        "mod": "Requires hospitals, labs, equipment; can be expensive",
    },
]

f_cat  = font(21, bold=True)
f_cell = font(20, bold=False)
ROW_H  = 98
INNER  = 10   # inner padding

for i, row in enumerate(rows):
    # category stripe across full width
    bg_cat = LIGHT_GOLD if i%2==0 else (255, 250, 230)
    rr(draw, (PAD, y, W-PAD, y+28), 0, GOLD)
    cx(draw, row["category"], y+4, f_cat, WHITE)

    y_row = y + 30
    # left cell
    bg_l = LIGHT_SAFFRON if i%2==0 else (255, 245, 225)
    rr(draw, (PAD, y_row, MID-GAP//2, y_row+ROW_H), 0, bg_l)
    draw_wrap(draw, row["gs"], PAD+INNER, y_row+8, f_cell, TEXT_DARK,
              CW - INNER*2, gap=7)

    # right cell
    bg_r = LIGHT_TEAL if i%2==0 else (215, 242, 246)
    rr(draw, (MID+GAP//2, y_row, W-PAD, y_row+ROW_H), 0, bg_r)
    draw_wrap(draw, row["mod"], MID+GAP//2+INNER, y_row+8, f_cell, TEAL_TEXT,
              CW - INNER*2, gap=7)

    # centre divider
    draw.rectangle([(MID-GAP//2, y), (MID+GAP//2, y_row+ROW_H)], fill=CREAM)
    # vertical gold line
    draw.line([(MID, y), (MID, y_row+ROW_H)], fill=GOLD, width=2)

    y = y_row + ROW_H

# ════════════════════════════════════════════════════════════════
# "BEST OF BOTH" SECTION
# ════════════════════════════════════════════════════════════════
y += 14
ornament_h(draw, y, color=GOLD)
y += 12
diamonds(draw, y, GOLD)
y += 18

rr(draw, (PAD, y, W-PAD, y+52), 14, BOTH_ACCENT)
cx(draw, "✨  Best of Both Worlds — Why Not Combine?", y+12, font(26, bold=True), WHITE)
y += 62

both_points = [
    "🌿  Use Garbha Samskara for mind, soul & emotional preparation",
    "🏥  Use Modern Care for medical safety, scans & clinical monitoring",
    "🧘  Combine Vedic yoga with doctor-recommended prenatal exercises",
    "🥗  Blend Sattvic Ayurvedic diet with medically advised supplements",
    "🎵  Play Vedic mantras & music alongside clinical prenatal education",
]

for pt in both_points:
    rr(draw, (PAD, y, W-PAD, y+54), 10, BOTH_BG, outline=BOTH_ACCENT, ow=1)
    draw_wrap(draw, pt, PAD+14, y+10, font(21, bold=False), TEXT_DARK,
              W - PAD*2 - 28, gap=6)
    y += 60

# ════════════════════════════════════════════════════════════════
# FOOTER
# ════════════════════════════════════════════════════════════════
y += 12
ornament_h(draw, y, color=GOLD)
y += 10
diamonds(draw, y, SAFFRON, n=11)
y += 16

# footer band
draw.rectangle([(0, y), (W, H)], fill=DEEP_SAFFRON)
draw.rectangle([(0, y), (W, y+4)], fill=GOLD)

f_ft1 = font(26, bold=True)
f_ft2 = font(20, bold=False)
cx(draw, "🌸  Garbha Samskara", y+14, f_ft1, WHITE)
cx(draw, "Ancient Wisdom | Ayurveda | Vedic Science | Modern Wellness", y+50, f_ft2, LIGHT_GOLD)
cx(draw, "#GarbhaSamskara  #PregnancyWellness  #AyurvedicPregnancy  #VedicMotherhood", y+84, font(18), (255,240,190))

img.save(OUT, quality=96)
print(f"Saved: {OUT}  ({W}x{H})")
Running Command

python3 /home/daytona/workspace/garbha-samskara/create_comparison.py

Editing File

~/garbha-samskara/create_comparison.py

Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/garbha-samskara/create_comparison.py'
Running Command

python3 /home/daytona/workspace/garbha-samskara/create_comparison.py

Editing File

~/garbha-samskara/create_comparison.py

Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/garbha-samskara/create_comparison.py'
Editing File

~/garbha-samskara/create_comparison.py

Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/garbha-samskara/create_comparison.py'
Reading File
Reading File
Editing File

~/garbha-samskara/create_comparison.py

Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/garbha-samskara/create_comparison.py'
Running Command

python3 /home/daytona/workspace/garbha-samskara/create_comparison.py

Comparison poster taiyaar hai! 🎉

✅ Download Karein:

GarbhaSamskara vs ModernCare

Image · JPG


Poster mein kya-kya hai (1080 x 2116 px):

SectionDetails
🔥 HeaderSaffron gradient banner — "Garbha Samskara vs Modern Prenatal Care"
🌿🏥 Column HeadersLeft = Garbha Samskara (saffron), Right = Modern Care (teal)
📊 10 Comparison RowsFoundation, Goal, Approach, Nutrition, Baby Connection, Wellness, Baby Development, Mental Health, Family Role, Accessibility
Best of Both WorldsGreen section — 5 points on combining both approaches
🌸 FooterBranding + hashtags
Color coding:
  • 🟠 Saffron/Orange = Garbha Samskara side
  • 🩵 Teal/Blue = Modern Care side
  • 💚 Green = "Best of Both" combined section
Instagram pe post karne ke liye perfect size hai! Koi aur customization chahiye? 😊
This is a shared conversation. Sign in to Orris to start your own chat.