User Rating 0.0
Total Usage 0 times
Drop image here or click to upload JPG, PNG, WebP — Max 20 MB
Is this tool helpful?

Your feedback helps us improve.

About

JPEG compression relies on 8×8 pixel blocks processed through Discrete Cosine Transform. Databending exploits this structure by corrupting encoded byte sequences between the Start of Scan (SOS, marker 0xFFDA) and End of Image (EOI, marker 0xFFD9). Altering bytes outside this range destroys the file header and renders the image unreadable. This tool operates on decoded pixel data via Canvas getImageData, applying deterministic corruption algorithms: channel displacement shifts R, G, B planes independently, pixel sorting reorders rows by luminance thresholds, and scanline injection inserts random byte blocks into re-encoded JPEG binary. Careless manual hex editing corrupts files irreversibly. The tool preserves structural integrity while maximizing visual distortion.

Results vary based on JPEG quantization tables and image content. High-frequency detail areas (textures, edges) glitch more dramatically than flat color regions. The "Seed" parameter ensures reproducible results. Export at full resolution with no server upload required.

glitch art jpg glitch pixel sorting databending glitch effect image corruption channel shift

Formulas

Channel shift displaces each color plane independently across the image canvas:

R(x, y) = R(x + dxr, y + dyr)

Pixel sorting compares luminance values calculated from the ITU-R BT.601 standard:

L = 0.299 R + 0.587 G + 0.114 B

Pixels within row are sorted only if their luminance falls in the range Lmin L Lmax. Wave distortion applies a sinusoidal horizontal offset per row:

dx(y) = A sin(2π yλ+ φ)

Where A = amplitude in pixels, λ = wavelength in pixels, φ = phase offset. The seeded pseudo-random number generator uses a linear congruential generator: xn+1 = (a xn + c) mod m, with a = 1664525, c = 1013904223, m = 232, ensuring reproducible results for a given seed value.

Reference Data

Glitch EffectTechniqueVisual ResultIntensity RangeBest For
Channel ShiftOffset RGB planes by dx, dy pixelsChromatic aberration, color fringing0 - 200 pxPortraits, high-contrast images
Pixel SortingSort row pixels by luminance L within thresholdStreaked, melted look0 - 255 thresholdLandscapes, skylines
Scanline CorruptionInject random bytes into JPEG SOS dataBlocky artifacts, color smearing1 - 500 corruptionsAny JPEG source
Chunk DisplacementShift horizontal pixel bands by random offsetBroken, displaced bands0 - 100 pxText overlays, geometric images
Wave DistortionSine-wave row displacement: dx = A sin(2πy / λ)Wavy, liquid distortionAmplitude 0 - 80 pxAbstract art, backgrounds
Quantization SmashRe-encode at quality Q < 10Heavy DCT block artifactsQuality 1 - 15Vaporwave aesthetic
Color CrushReduce color depth per channel to n levelsPosterized, banded gradients2 - 32 levelsGradients, photographs
Line InjectionInsert solid/noise scanlines at interval kCRT/VHS scan linesEvery 2 - 20 rowsRetro aesthetic
Bit ShiftBitwise shift pixel values: v = v << nExtreme color distortion1 - 4 bitsExperimental art
Block ShuffleRandomly swap 8×8 DCT-aligned blocksMosaic scrambling1 - 50% blocksCensorship effect, chaos
GhostingBlend frame with offset copy at α opacityMotion blur, echo effectOffset 5 - 50 pxAction photos
Inversion BandsInvert pixel values in random horizontal stripsNegative color bands1 - 30 bandsHigh-contrast images

Frequently Asked Questions

JPEG compression artifacts concentrate at edges and high-frequency detail areas. Images with sharp transitions between colors (text on backgrounds, architectural lines) produce more visible block artifacts when corrupted. Flat, low-contrast images like foggy landscapes resist visible glitching because the DCT coefficients are already near-zero. Increase scanline corruption and channel shift intensity for subtle images.
The tool uses a Linear Congruential Generator (LCG) seeded with your input value. Every random decision (byte injection location, chunk offset magnitude, corruption targets) derives from this deterministic sequence. The same seed + same image + same parameters = identical output every time. Change the seed by even 1 to get a completely different glitch pattern.
No. The tool corrupts pixel data on the Canvas level, not the raw JPEG binary. The final export is a clean re-encode of the corrupted pixel buffer. The output file is always structurally valid. If you select PNG export, no JPEG artifacts appear - only the pixel-level manipulations (channel shift, sorting, wave) are visible.
Canvas API limits vary by browser: Chrome supports approximately 16,384 × 16,384 pixels (268 megapixels), Firefox around 11,180 × 11,180. Images exceeding these limits are automatically downscaled. For best performance, keep images under 4,000 × 4,000 pixels. Processing time scales linearly with pixel count - a 12-megapixel image takes roughly 3× longer than a 4-megapixel image.
Yes. Effects are applied in a fixed pipeline order: Color Crush → Channel Shift → Pixel Sorting → Wave Distortion → Chunk Displacement → Scanline Lines → Block Shuffle. This order matters. Pixel sorting after channel shift produces different results than the reverse. Set any effect's intensity to zero to skip it in the chain.