@heyhru/web-util-media
v0.2.2
Published
Browser media utilities: image cropping, audio conversion, file handling, and clipboard
Downloads
312
Readme
@heyhru/web-util-media
Browser media utilities: image cropping, audio conversion, file handling, and clipboard. Requires a browser environment (uses Canvas, AudioContext, FileReader, and Clipboard APIs).
Usage
Image
import { createImage, getCroppedImg, isDataURL, dataURLtoFile, urlToDataUrl } from "@heyhru/web-util-media";
// Crop an image to a pixel region, returns JPEG Data URL
const dataUrl = await getCroppedImg("https://example.com/photo.jpg", {
x: 10, y: 10, width: 200, height: 200,
});
// Convert a remote URL to a Data URL
const dataUrl2 = await urlToDataUrl("https://example.com/photo.jpg");
// Convert a Data URL to a File
const file = await dataURLtoFile(dataUrl, "cropped.jpg");File
import { blobToDataUrl, readFileAsDataUrl, getFileExtension, MD5, compressImage, copyToClipboard } from "@heyhru/web-util-media";
// Compress an image to ≤0.1 MB JPEG
const compressed = await compressImage(file, 0.1);
// Get file extension
getFileExtension(file); // ".jpg"
// Read file as Data URL
const dataUrl = await readFileAsDataUrl(file);
// Copy text to clipboard
await copyToClipboard("hello world");Audio
import { convertWebMToWav, getAudioDuration } from "@heyhru/web-util-media";
// Convert a recorded WebM blob to WAV
const wavBlob = await convertWebMToWav(webmBlob);
// Get duration of an audio element
const duration = await getAudioDuration(audioElement);API
| Export | Description |
|---|---|
| createImage(url) | Load a URL into an HTMLImageElement |
| getCroppedImg(src, pixelCrop) | Crop image, returns JPEG Data URL |
| isDataURL(str) | Check if string is a Data URL |
| dataURLtoFile(dataUrl, fileName?) | Convert Data URL to File |
| urlToDataUrl(url) | Fetch remote URL and return as Data URL |
| blobToDataUrl(blob) | Read Blob as Data URL via FileReader |
| readFileAsDataUrl(file) | Read File as Data URL |
| getFileExtension(file) | Return file extension including dot |
| MD5(str) | Non-cryptographic hash for file naming |
| compressImage(file, maxSizeMB?, maxDim?) | Compress image to JPEG |
| copyToClipboard(text) | Copy text to clipboard, returns success bool |
| convertWebMToWav(blob) | Convert WebM audio to WAV via Web Audio API |
| getAudioDuration(audio, timeout?) | Resolve audio duration in seconds |
