尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
Put your photo inside a Polaroid, phone, laptop, gallery frame or camera display – procedural mockups, PNG export in the browser. Be Management Tools.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Put any photo inside a real-looking frame: Polaroid-style instant prints, phone / tablet / laptop screens, a gallery frame with mat, a DSLR camera display or a 35 mm film strip. Every frame is drawn procedurally on a <canvas> in the user's browser (no image assets, nothing uploaded).
Live: https://framelab-tool.vercel.app/ (placeholder – replaced after deploy)
Free
localStorageStudio.watermark)Pro (one-time, price from config.js)
setTransform), Magazine cover (masthead + barcode), Vintage CRT TVGates are enforced in app.js via isPro() / Studio.gate(); the UI listens to pro:changed.
index.html tool page + SEO content + FAQ (JSON-LD WebApplication + FAQPage)
styles.css _shared/base.css + app styles (incl. CSS mini previews of every frame)
app.js rendering engine (frames, backgrounds, pan/zoom) + UI (vanilla JS, no build step)
studio.js shared canvas / drop zone / export / ZIP helpers (copy of _shared/studio.js)
monetize.js shared theme / toast / analytics / AdSense / Pro license helpers
config.js window.APP_CONFIG (site URL, AdSense, GA, checkout URL, price, LICENSE, NEWSLETTER)
privacy.html privacy policy (required for AdSense)
terms.html terms of use
robots.txt, sitemap.xml, vercel.json, favicon.svg, .gitignore
npx serve .
No build step. Open the printed URL.
Deploy the folder as a static site on Vercel (vercel --prod). After the first deploy, replace the placeholder everywhere:
sed -i 's/framelab-tool.vercel.app/framelab-tool.vercel.app/g' index.html privacy.html terms.html robots.txt sitemap.xml config.js README.md
Then run node _shared/apply-brand.js frame-lab from the repo root to inject the shared header, hero, footer and lead card.
ADSENSE_CLIENT: "ca-pub-XXXXXXXXXXXXXXXX" in config.js. Slots: sidebar-1, below-tool. privacy.html already discloses advertising cookies.GA_ID: "G-XXXXXXX". Events: add_files, sample, frame_select, bg_select, download (format, scale), copy, download_zip, preset_save, preset_apply, pro_click, begin_checkout, license_activated.PRO_CHECKOUT_URL, PRO_PRICE and LICENSE.store_id / product_id. Until those are set, real keys are refused and only LICENSE.test_keys work locally.NEWSLETTER.url (Formspree / ConvertKit / Beehiiv) to show the lead card that apply-brand.js injects.destination-out so transparent backgrounds stay transparent.