gr_camera_detector 0.1.0 copy "gr_camera_detector: ^0.1.0" to clipboard
gr_camera_detector: ^0.1.0 copied to clipboard

Detect photos taken with Ricoh GR camera series via EXIF metadata and filename patterns. Supports all GR models from GR DIGITAL to GR IV.

gr_camera_detector #

A Dart package that detects whether a photo was taken with a Ricoh GR series camera.

It identifies GR cameras by analyzing EXIF metadata and filename patterns. Since it does not use dart:io, it works on all platforms including web, mobile, and desktop.

Features #

  • 📷 EXIF-based detection — Reliable identification via Make/Model metadata
  • 📄 Filename pattern detection — Matches GR-specific filename patterns (R0######.JPG)
  • 🌐 Multi-platform — No dart:io dependency, supports all platforms including web
  • All models supported — From GR DIGITAL to GR IV Monochrome

Supported Models #

Series Models
GR DIGITAL GR DIGITAL, II, III, IV
GR GR, GR II
GR III GR III, GR IIIx, GR III HDF, GR IIIx HDF
GR IV GR IV, GR IV HDF, GR IV Monochrome

Getting started #

dependencies:
    gr_camera_detector: ^0.1.0

Usage #

Detect from image bytes (all platforms) #

import 'dart:typed_data';
import 'package:gr_camera_detector/gr_camera_detector.dart';

final detector = GrCameraDetector();

// Read EXIF from image bytes to detect GR camera
final Uint8List imageBytes = ...; // Image byte data
final result = await detector.detectFromBytes(imageBytes);

if (result.isGrCamera) {
  print('GR camera photo! Model: ${result.model?.displayName}');
  print('Confirmed: ${result.isConfirmed}');
}

Detect from filename #

final result = detector.detectFromFilename('R0001234.JPG');

if (result.isGrCamera) {
  // Filename-based detection is an estimate, so isConfirmed == false
  print('Likely a GR camera photo (filename-based)');
}

Combined detection (bytes + filename) #

final result = await detector.detectFromBytes(
  imageBytes,
  filename: 'R0001234.JPG',
);

// When both EXIF and filename match, method == DetectionMethod.both
if (result.method == DetectionMethod.both) {
  print('Both EXIF and filename confirmed');
}

Model information #

final model = result.model;
if (model != null) {
  print('Model: ${model.displayName}');
  print('HDF filter: ${model.hasHdf}');
  print('Monochrome: ${model.isMonochrome}');
}

Flutter web usage #

import 'package:gr_camera_detector/gr_camera_detector.dart';

// Use byte data from a file picked via file picker
final bytes = await pickedFile.readAsBytes();
final result = await GrCameraDetector().detectFromBytes(
  bytes,
  filename: pickedFile.name,
);

Detection Methods #

Method Accuracy isConfirmed Description
DetectionMethod.exif High true EXIF metadata verified
DetectionMethod.filename Low false Filename pattern estimate
DetectionMethod.both Highest true Both EXIF and filename matched
DetectionMethod.none false Not detected

Additional information #

  • Filename detection is for reference only, as other cameras may use similar patterns.
  • This package will be updated when new GR models are released.
  • For bug reports or feature requests, please visit GitHub Issues.
0
likes
160
points
25
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Detect photos taken with Ricoh GR camera series via EXIF metadata and filename patterns. Supports all GR models from GR DIGITAL to GR IV.

Repository (GitHub)
View/report issues

Topics

#exif #ricoh #camera #image-processing

License

MIT (license)

Dependencies

exif

More

Packages that depend on gr_camera_detector