尚未收集儲存庫資訊。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
Resize images and short videos to exact pixels, percent or presets, in the browser. Be Management Tools.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Resize images (PNG, JPG, WebP, GIF first frame, BMP, SVG) and short videos (MP4, WebM, MOV – whatever the browser decodes) to an exact pixel size, a percentage, a longest-side limit or a social/web/print/avatar preset. Keep ratio, crop to fill (9-point anchor), stretch or pad. Everything runs on a <canvas> (images) or <video> + MediaRecorder (videos) in the user's browser; nothing is uploaded.
Live: https://sizeconverter-tool.vercel.app/ (placeholder – replaced after deploy)
Free
{name}-{w}x{h} ({index} too).webm (VP9 or VP8 + Opus), audio copied via AudioContext; over-limit files get a "Convert at 720p / first 30 s" fallbackStudio.watermark), also drawn on every video framelocalStoragePro (one-time, price from config.js)
Gates 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
app.js resize engine (images + video) + 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. window.SizeConverter exposes addFiles, computePlan, items() and makeSample() for testing in the console.
Deploy the folder as a static site on Vercel (vercel --prod). After the first deploy, replace the placeholder everywhere:
sed -i 's/sizeconverter-tool.vercel.app/your-app.vercel.app/g' index.html privacy.html terms.html robots.txt sitemap.xml config.js README.md
Then run node _shared/apply-brand.js size-converter 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, download (from Studio.exportPNG), download_click, download_all, download_zip, generate (video), 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.AudioContext.createMediaElementSource; if the browser blocks the audio context (no user gesture yet) the track may be silent and the row says so.