← Back to list

Flutter & C2PA Explained in Comics: A Practical How-To for Developers

Ever tried reading C2PA metadata in Flutter, only to get hasAiGeneratedContent: false on a clearly AI-generated image? I ran into exactly…

Blur Brah Lab · 2026-04-25 12:01 · 0 claps · 1.6 min read
#flutter #artificial-intelligence #content-provenance #technews #c2pa
Open on Medium ↗
Wiki topics: AI · AI · General 📱 · Mobile Development 📚 · Books & Reading 🖊️ · Illustration & Drawing

Flutter & C2PA Explained in Comics: A Practical How-To for Developers

Ever tried reading C2PA metadata in Flutter, only to get hasAiGeneratedContent: false on a clearly AI-generated image? I ran into exactly that problem — and the debugging trail was more interesting than I expected.

I documented the whole journey as a comic. Six panels, two bugs, one fix.

The short version

Two bugs stacked:

  1. Active-manifest-only inspection — OpenAI images have c2pa.opened as the active manifest; the AI evidence (c2pa.created + trainedAlgorithmicMedia) lives in another manifest.
  2. Field name mismatchc2pa_flutter 0.1.0 reads source_type, but c2pa-rs 0.75.x emits digitalSourceType.

The fix: read raw JSON from the Rust reader, walk all manifests, and accept both field names.

Want the full code walkthrough? I wrote a detailed companion post here: → Reading the “AI evidence” embedded in ChatGPT and Canva images with Flutter

Live demo: https://blurbrah.github.io/c2pa_ai_gallery_probe/

Source: https://github.com/BlurBrah/c2pa_ai_gallery_probe


메타데이터
post_id
b87b1aba2502
slug
flutter-c2pa-explained-in-comics-a-practical-how-to-for-developers-b87b1aba2502
url
https://medium.com/@blurbrahlab/flutter-c2pa-explained-in-comics-a-practical-how-to-for-developers-b87b1aba2502
canonical_url
https://medium.com/@blurbrahlab/flutter-c2pa-explained-in-comics-a-practical-how-to-for-developers-b87b1aba2502
author_url
https://medium.com/@blurbrahlab
status
ok
fetched_at
2026-06-15 20:49:13