SShortSingh.
Back to feed

Why HEIC-to-JPEG conversions look washed out: three color checkpoints

0
·3 views

A set of color measurements on two synthetic and CC0 test HEIC files tagged Display P3 suggests three checks, rather than the library, explain washed-out JPEG output. Decoders differ: WebKit handed over sRGB pixels, Chromium converted a P3 PNG to sRGB, and sharp read the metadata but could not decode the pixels in its prebuilt binary. The washed-out look appeared only when Pillow saved P3 numbers without attaching the ICC profile, shifting skin and saturated colors noticeably. Carrying the P3 profile or converting to sRGB both gave accurate results, though saturated P3 colors clip when converted to sRGB. The author also warns that tools like sips -g profile can report sRGB for files that carry no embedded profile, so reading the actual bytes is the reliable way to verify the result.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Developer builds Supabase connector for Switch to bring AI agents into team chat

A developer built a Supabase connector for Switch during the Flip the Switch hackathon, letting AI agents work in team chat rooms instead of isolated terminals. The connector was simple to add, with the platform handling login flow and scopes, and it works across multiple agents and chat platforms. The developer's demo workflow had a triager agent diagnose database bugs from logs and a second agent propose SQL fixes, with a rule that no change runs without explicit human approval of the exact statement. The author noted a limitation: Switch does not yet distinguish read-only from write tools, so that guardrail currently lives in the developer's own skill rather than the platform.

0
ProgrammingDEV Community ·

Editing 0.016% of a model's weights reduces looping on math tasks

Researchers tested a targeted change to the weights of Qwen 3.5, an 800-million-parameter model that was getting stuck in repetitive loops on math exercises. The edit was made without any new training or backpropagation. On the MATH-500 benchmark, the authors report a score rising from 7.9% to 48.1%, and a later public re-evaluation on Hugging Face reported 51%. The result depends on a specific protocol, and reducing generation loops does not by itself prove a general improvement in the model's mathematical ability. A second experiment is expected to add nuance to these findings.

0
ProgrammingDEV Community ·

Privy, Turnkey and Coinbase CDP Differ on Agent Wallet Spend Caps

A comparison of agent wallet policy engines from Coinbase CDP, Privy and Turnkey shows they handle unmatched operations differently. CDP accepts any operation that no policy mentions, so a spend cap on one signing method can leave another method unlimited. Privy and Turnkey instead deny operations that are not explicitly allowed. The author notes that top search results for these vendors do not compare their policy formats or whether they support daily spend caps. The comparison is based on each vendor's documentation, OpenAPI specs and pricing pages as of 7 November 2026. The article also finds that only Turnkey offers a public rolling spend cap feature.

0
ProgrammingDEV Community ·

RecallOps Pairs PostgreSQL With Long-Term Agent Memory to Improve Incident Response

Engineers often write detailed postmortems that go unread, so similar outages later lead to repeated failed fixes. The author's team built RecallOps, an operational intelligence layer for the Kartly e-commerce platform, to remember past incidents including alerts, recent deployments, attempted fixes, and what restored service. Their design combines a PostgreSQL store for structured operational state with Hindsight, a long-term memory engine that organizes distilled postmortems into memory banks with temporal and entity reasoning. The team argues that naive retrieval-augmented generation over raw logs performs poorly, because redundant log lines obscure causal signals, plain embeddings cannot tell successful fixes from harmful ones, and vector search loses incident chronology.