import os, subprocess, zipfile, tarfile, json, wave, struct, math from PIL import Image, ImageDraw from fpdf import FPDF from docx import Document from openpyxl import Workbook from pptx import Presentation from pptx.util import Inches D="/tmp/mcptest-files"; os.makedirs(D, exist_ok=True) def p(f): return os.path.join(D,f) def img(fn, fmt, size=(640,400), color=(70,130,180)): im=Image.new("RGB",size,color); dr=ImageDraw.Draw(im) dr.rectangle([20,20,size[0]-20,size[1]-20],outline=(255,255,255),width=4) dr.text((40,40),f"MCP Test\n{fn}",fill=(255,255,255)) im.save(p(fn),fmt) # ---- Bilder ---- img("photo.jpg","JPEG",color=(200,120,60)) img("screenshot.png","PNG") img("picture.webp","WEBP",color=(60,160,120)) img("icon.bmp","BMP",(128,128)) img("scan_src.png","PNG",(800,1000),(245,245,235)) # GIF (animiert) frames=[Image.new("RGB",(120,120),(i*40%255,80,160)) for i in range(3)] frames[0].save(p("animation.gif"),save_all=True,append_images=frames[1:],duration=300,loop=0) # TIFF img("scan.tiff","TIFF",(600,800),(230,230,230)) # SVG (Text) open(p("logo.svg"),"w").write('MCP Test') # ---- Audio (ffmpeg) ---- def ff(args): subprocess.run(["ffmpeg","-y","-loglevel","error"]+args,check=True) ff(["-f","lavfi","-i","sine=frequency=440:duration=2","-q:a","6",p("tone.mp3")]) ff(["-f","lavfi","-i","sine=frequency=660:duration=2",p("music.ogg")]) ff(["-f","lavfi","-i","sine=frequency=330:duration=2",p("sound.m4a")]) ff(["-f","lavfi","-i","sine=frequency=550:duration=2",p("track.flac")]) # WAV (pure python, 1s 440Hz) w=wave.open(p("voice.wav"),"w"); w.setnchannels(1); w.setsampwidth(2); w.setframerate(8000) w.writeframes(b"".join(struct.pack("Test') open(p("settings.yaml"),"w").write("projekt: mcptest\naktiv: true\nliste:\n - a\n - b\n") open(p("page.html"),"w").write("

MCP Test

HTML.

") open(p("script.py"),"w").write("print('mcp test')\n") open(p("contact.vcf"),"w").write("BEGIN:VCARD\nVERSION:3.0\nFN:Max Mustermann\nEMAIL:max@example.com\nEND:VCARD\n") open(p("event.ics"),"w").write("BEGIN:VCALENDAR\nVERSION:2.0\nBEGIN:VEVENT\nUID:t1\nSUMMARY:Test\nDTSTART:20260701T100000Z\nEND:VEVENT\nEND:VCALENDAR\n") # ---- Archive ---- with zipfile.ZipFile(p("archive.zip"),"w") as z: z.write(p("notes.txt"),"notes.txt"); z.write(p("data.csv"),"data.csv") with tarfile.open(p("backup.tar.gz"),"w:gz") as t: t.add(p("readme.md"),"readme.md") os.remove(p("scan_src.png")) print("Generiert:") for f in sorted(os.listdir(D)): print(f" {os.path.getsize(p(f)):>8} {f}")