Prepare a colourful poster including diagrams and images, short sentences for world mosquito day, take reference from k park for CM, include information regarding mosquito bite prevention for rural understanding

Reading File
Finding Sources
Searching Images

Aedes mosquito breeding site prevention diagram

Searching the Web

World Mosquito Day 2026 theme history date August 20

Reading File
Reading File
Searching Images

insecticide treated bed net malaria prevention

Searching Images

mosquito life cycle larva pupa diagram

Finding Sources
query_images_db
query_images_db
Generating Image

A colorful flat-design health poster illustration showing the mosquito life cycle in stagnant water (egg, larva, pupa, adult mosquito) alongside simple icons of common mosquito breeding sites found in rural homes: an open water drum, a discarded tyre, a clay pot, a coconut shell, and a puddle near a hand pump. Bright educational infographic style, no text or letters in the image, clean vector illustration style suitable for a public health poster.

Running Command

mkdir -p /tmp/workspace/mosquito-poster/assets /tmp/workspace/mosquito-poster/output && cd /tmp/workspace/mosquito-poster/assets && curl -sL "https://cdn.orris.care/cdss_images/GLGCA_2442997_1763309336390_f414afb5-ff3b-44c5-965f-11307146f8b9.png" -o bednet.png && ls -la

Running Command

cd /tmp/workspace/mosquito-poster/assets && curl -sL "https://cdn.orris.care/image-gen/99bf6e206e6a4d3bb21e8e8be8610378.png" -o lifecycle.png && python3 -c "from PIL import Image; im=Image.open('lifecycle.png'); print(im.size); im2=Image.open('bednet.png'); print(im2.size)"

Browsing Directory

/tmp/workspace

Running Command

fc-list | grep -iE "dejavu|liberation|arial|noto" | head -20

Running Command

python3 -c " import PIL, os p = os.path.dirname(PIL.__file__) print(p) for root,dirs,files in os.walk(p): for f in files: if f.lower().endswith('.ttf'): print(os.path.join(root,f)) "

Writing File

~/mosquito-poster/build_poster.py

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

FONT_PATH = "/usr/share/fonts/google-noto-vf/NotoSans[wght].ttf"
ASSETS = "/tmp/workspace/mosquito-poster/assets"
OUT = "/tmp/workspace/mosquito-poster/output/World_Mosquito_Day_Poster.png"

W, H = 1600, 2200

def font(size, weight=400):
    f = ImageFont.truetype(FONT_PATH, size)
    try:
        f.set_variation_by_axes([weight])
    except Exception:
        pass
    return f

def wrap_draw(draw, xy, text, fnt, fill, max_width, line_spacing=1.25, align="left"):
    x, y = xy
    words = text.split()
    lines, cur = [], ""
    for w in words:
        test = (cur + " " + w).strip()
        if draw.textlength(test, font=fnt) <= max_width:
            cur = test
        else:
            lines.append(cur)
            cur = w
    if cur:
        lines.append(cur)
    for ln in lines:
        if align == "center":
            lw = draw.textlength(ln, font=fnt)
            draw.text((x + (max_width - lw) / 2, y), ln, font=fnt, fill=fill)
        else:
            draw.text((x, y), ln, font=fnt, fill=fill)
        y += int(fnt.size * line_spacing)
    return y

# Base canvas - vertical gradient teal to deep blue
img = Image.new("RGB", (W, H), "#0b6e6e")
draw = ImageDraw.Draw(img)
top = (13, 110, 110)
bottom = (7, 54, 84)
for y in range(H):
    t = y / H
    r = int(top[0] + (bottom[0]-top[0])*t)
    g = int(top[1] + (bottom[1]-top[1])*t)
    b = int(top[2] + (bottom[2]-top[2])*t)
    draw.line([(0,y),(W,y)], fill=(r,g,b))

YELLOW = "#FFD93D"
ORANGE = "#FF8C42"
WHITE = "#FFFFFF"
DARK = "#0B2E42"
RED = "#E63946"
GREEN = "#2ECC71"
CARD = "#FFFFFF"

margin = 60

# ---------- HEADER BAND ----------
draw.rectangle([0,0,W,300], fill="#073852")
draw.rectangle([0,290,W,300], fill=ORANGE)

f_kicker = font(34, 600)
f_title = font(92, 800)
f_sub = font(38, 500)

draw.text((margin, 30), "20th AUGUST", font=f_kicker, fill=YELLOW)
draw.text((W-margin-draw.textlength("Sir Ronald Ross Discovery, 1897", font=f_kicker), 30),
           "Sir Ronald Ross Discovery, 1897", font=f_kicker, fill=YELLOW)

wrap_draw(draw, (margin, 85), "WORLD MOSQUITO DAY", f_title, WHITE, W-2*margin, line_spacing=1.05)
wrap_draw(draw, (margin, 205), "One Bite Can Change a Life  -  Protect Yourself, Protect Your Village",
          f_sub, "#CFEFEF", W-2*margin)

# ---------- SECTION: Did you know / diseases strip ----------
y0 = 330
draw.rounded_rectangle([margin, y0, W-margin, y0+230], radius=24, fill=CARD)
f_h2 = font(40, 800)
f_body = font(28, 500)
draw.text((margin+30, y0+18), "Did You Know?", font=f_h2, fill=RED)
did_you_know = ("Sir Ronald Ross discovered in Secunderabad, India (1897) that female Anopheles "
                "mosquitoes spread malaria. He won the Nobel Prize in 1902 and named 20th August "
                "as World Mosquito Day.")
wrap_draw(draw, (margin+30, y0+70), did_you_know, f_body, DARK, W-2*margin-60)

# ---------- Diseases row ----------
y1 = y0 + 260
draw.rounded_rectangle([margin, y1, W-margin, y1+230], radius=24, fill="#FFF4E0")
f_h2b = font(38, 800)
draw.text((margin+30, y1+16), "Mosquitoes Spread These Diseases", font=f_h2b, fill=DARK)

diseases = [
    ("Anopheles", "Malaria", RED),
    ("Aedes", "Dengue, Chikungunya, Zika", ORANGE),
    ("Culex", "Japanese Encephalitis, Filariasis", "#6A4C93"),
    ("Mansonoides", "Filariasis", "#1B998B"),
]
box_w = (W - 2*margin - 60 - 3*20) / 4
bx = margin + 30
by = y1 + 80
f_dname = font(30, 800)
f_ddis = font(22, 500)
for name, dis, col in diseases:
    draw.rounded_rectangle([bx, by, bx+box_w, by+140], radius=16, fill=col)
    draw.ellipse([bx+box_w/2-22, by+12, bx+box_w/2+22, by+56], fill=WHITE)
    draw.text((bx+box_w/2, by+18), "", font=f_dname, fill=col)
    nlw = draw.textlength(name, font=f_dname)
    draw.text((bx+box_w/2-nlw/2, by+64), name, font=f_dname, fill=WHITE)
    wrap_draw(draw, (bx+12, by+100), dis, f_ddis, "#FFFFFF", box_w-24, align="center")
    bx += box_w + 20

# ---------- Life cycle / breeding diagram image ----------
y2 = y1 + 260
diagram = Image.open(os.path.join(ASSETS, "lifecycle.png")).convert("RGB")
dw = W - 2*margin
dh = int(dw * diagram.height / diagram.width)
dh = min(dh, 560)
diagram = ImageOps.fit(diagram, (dw, dh), method=Image.LANCZOS)
draw.rounded_rectangle([margin, y2, W-margin, y2+dh+90], radius=24, fill=CARD)
f_h2c = font(38, 800)
draw.text((margin+30, y2+16), "Break the Breeding Cycle - No Water, No Mosquito!", font=f_h2c, fill="#0B6E6E")
img.paste(diagram, (margin, y2+80))

# ---------- Prevention tips section (rural focus) ----------
y3 = y2 + dh + 130
draw.rounded_rectangle([margin, y3, W-margin, H-260], radius=24, fill="#0E4D4D")
f_h1 = font(48, 800)
draw.text((margin+30, y3+20), "Prevention Tips for Villages & Homes", font=f_h1, fill=YELLOW)

tips = [
    "Empty and scrub water pots, drums & coolers every week.",
    "Cover wells, tanks & stored water tightly with a lid or cloth.",
    "Fill or drain puddles near hand pumps, wells and cattle sheds.",
    "Sleep under a mosquito net (ITN) every night, especially children.",
    "Wear full-sleeve clothes in the evening and at night.",
    "Use neem oil, repellent cream, coils or mats after dusk.",
    "Throw away old tyres, tins, coconut shells - they collect rainwater.",
    "Put small fish (Gambusia) in ponds and tanks to eat larvae.",
    "Keep cattle sheds away from the house and clean regularly.",
    "Tell your health worker (ASHA/ANM) about fever with chills at once.",
]

f_tip = font(30, 600)
num_col_w = (W - 2*margin - 60) / 2
ty = y3 + 100
tx = margin + 30
col = 0
row_start_y = ty
max_row_h = 0
for i, tip in enumerate(tips):
    cx = tx + col * (num_col_w + 40)
    circle_r = 24
    draw.ellipse([cx, ty, cx+2*circle_r, ty+2*circle_r], fill=YELLOW)
    numtxt = str(i+1)
    nlw = draw.textlength(numtxt, font=font(26,800))
    draw.text((cx+circle_r-nlw/2, ty+6), numtxt, font=font(26,800), fill=DARK)
    end_y = wrap_draw(draw, (cx+2*circle_r+16, ty), tip, f_tip, WHITE, num_col_w-2*circle_r-16, line_spacing=1.2)
    row_h = end_y - ty
    max_row_h = max(max_row_h, row_h)
    if col == 0:
        col = 1
    else:
        col = 0
        ty += max_row_h + 30
        max_row_h = 0

# ---------- Bed net photo + community message ----------
y4 = H - 240
draw.rounded_rectangle([margin, y4, W-margin, H-40], radius=24, fill=CARD)
bednet = Image.open(os.path.join(ASSETS, "bednet.png")).convert("RGB")
bn_h = 180
bn_w = int(bn_h * bednet.width / bednet.height)
bednet = bednet.resize((bn_w, bn_h), Image.LANCZOS)
img.paste(bednet, (margin+20, y4+10))

msg_x = margin + 20 + bn_w + 40
f_h3 = font(34, 800)
f_body2 = font(26, 500)
wrap_draw(draw, (msg_x, y4+20), "Protect Your Family - Use a Mosquito Net Every Night",
          f_h3, "#0E4D4D", W-margin-40-msg_x)
wrap_draw(draw, (msg_x, y4+90), "A clean village with no stagnant water is the best defence "
          "against malaria, dengue and filariasis. Community action saves lives.",
          f_body2, DARK, W-margin-40-msg_x)
draw.text((msg_x, y4+165), "Photo: WHO / Noor - Benedicte Kurzen", font=font(18,400), fill="#888888")

# ---------- Footer strip ----------
draw.rectangle([0, H-40, W, H], fill=ORANGE)
f_foot = font(22, 600)
foot_text = "Source: Park's Textbook of Preventive & Social Medicine (Community Medicine) - Mosquito-borne disease control"
flw = draw.textlength(foot_text, font=f_foot)
draw.text(((W-flw)/2, H-33), foot_text, font=f_foot, fill=DARK)

os.makedirs(os.path.dirname(OUT), exist_ok=True)
img.save(OUT, quality=95)
print("saved", OUT, img.size)
Running Command

cd /tmp/workspace/mosquito-poster && python3 build_poster.py 2>&1 | tail -50

Reading File
Running Command

cd /tmp/workspace/mosquito-poster/output && python3 -c " from PIL import Image im = Image.open('World_Mosquito_Day_Poster.png') im2 = im.resize((im.width//2, im.height//2)) im2.save('preview.jpg', quality=80) print(im.size) " ls -la

Reading File
Editing File

~/mosquito-poster/build_poster.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/mosquito-poster/build_poster.py'
Editing File

~/mosquito-poster/build_poster.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/mosquito-poster/build_poster.py'
Running Command

cd /tmp/workspace/mosquito-poster && sed -i 's/y2 = y1 + 260/y2 = y1 + 330/' build_poster.py && python3 build_poster.py && cd output && python3 -c " from PIL import Image im = Image.open('World_Mosquito_Day_Poster.png') im2 = im.resize((im.width//2, im.height//2)) im2.save('preview.jpg', quality=80) print(im.size) "

Reading File
Poster looks good, all 10 tips fit cleanly, the disease grid, life-cycle diagram, and bed-net photo all render correctly. The Culex box text is slightly tight (2 lines touching bottom edge) but readable. Finalizing now.

World Mosquito Day Poster

Image · PNG

Poster summary (built for World Mosquito Day, 20th August):
  • Header: "World Mosquito Day" with the tagline "One Bite Can Change a Life - Protect Yourself, Protect Your Village"
  • Did You Know: Sir Ronald Ross's 1897 discovery in Secunderabad, India that female Anopheles mosquitoes transmit malaria, earning him the 1902 Nobel Prize and inspiring this observance day
  • Disease chart: Anopheles - Malaria, Aedes - Dengue/Chikungunya/Zika, Culex - Japanese Encephalitis/Filariasis, Mansonoides - Filariasis (per Park's Textbook of Preventive and Social Medicine, Community Medicine)
  • Life-cycle diagram: egg-larva-pupa-adult cycle in stagnant water plus common rural breeding sites (drums, tyres, pots, coconut shells, hand-pump puddles)
  • 10 prevention tips written in short, simple sentences for rural/village audiences, covering source reduction (emptying/covering water containers, draining puddles, disposing of tyres/shells), personal protection (ITN bed nets, full-sleeve clothing, repellent/neem oil), biological control (larvivorous fish like Gambusia), environmental hygiene (cattle sheds away from homes), and community health-seeking behavior (reporting fever to ASHA/ANM workers)
  • Real WHO photo of a family under a mosquito net with a community message on collective action
All content on mosquito habits, disease vectors, and control measures (environmental/source reduction, chemical - IRS/ITN/LLIN/larviciding, biological, and personal prophylactic measures) is drawn directly from K. Park's Textbook of Preventive and Social Medicine, the standard Community Medicine reference.
Note on evidence check: A quick check for very recent systematic reviews on mosquito-borne disease prevention didn't surface anything that contradicts these standard measures — bed nets, source reduction, and larviciding remain the core WHO/Park-recommended interventions.

Poster

Here's the World Mosquito Day poster again:

World Mosquito Day Poster

Image · PNG

It includes:
  • Header with the "World Mosquito Day - 20th August" theme and Sir Ronald Ross's 1897 discovery
  • A disease chart (Anopheles-Malaria, Aedes-Dengue/Chikungunya/Zika, Culex-Japanese Encephalitis/Filariasis, Mansonoides-Filariasis)
  • A mosquito life-cycle and breeding-site diagram (drums, tyres, pots, coconut shells, hand-pump puddles)
  • 10 short, rural-friendly prevention tips (covering water storage, bed nets, repellents, larvivorous fish, cattle shed hygiene, and reporting fever to ASHA/ANM workers)
  • A real WHO photo of a family under a mosquito net
All content is sourced from K. Park's Textbook of Preventive and Social Medicine (Community Medicine).
Let me know if you'd like any changes - different colors, added local language text, a specific disease highlighted, or a different aspect ratio for printing.
This is a shared conversation. Sign in to Orris to start your own chat.