Skip to content

negaflow 1.0.5 — full-chroma JPEG, selectable PNG bit depth, film look for digital sources

Latest

Choose a tag to compare

@habinsong habinsong released this 03 Aug 11:28

English · 한국어 · 日本語 · 简体中文 · Français · Deutsch

Free open-source macOS app that inverts colour and black-and-white film negatives, develops them, repairs dust and scratches, and prints. Camera scans and film scanners.

Website · Camera scanning guide · How to invert a film negative

Downloads

  • Most Macs: negaflow-1.0.5-1-macOS-universal.pkg
  • Apple Silicon only: negaflow-1.0.5-1-macOS-arm64.pkg
  • ZIP and DMG files for manual installation are provided as well.

Important: signing and notarization status

These artifacts are ad-hoc signed and are not notarized by Apple. macOS may block the first launch. Verify the download against the accompanying SHA256SUMS file, try to open it once, and allow it in System Settings → Privacy & Security → Open Anyway.

Updated August 3, 2026 at 10:45 UTC

Changes

  • JPEG is now encoded without chroma subsampling at 95% quality and above, and the default quality is 100%. Below that threshold the chosen value is kept, since a lower setting means asking for a smaller file. Colour resolution is no longer halved in the delivered file.
  • PNG bit depth is selectable, 8 or 16 bits per channel. Export defaults to 16-bit, Quick Export to 8-bit. Dithering is applied only at 8 bits.
  • Quick Export now has its own JPEG quality slider and PNG bit-depth control, placed between Size and Folder. It previously ignored the quality setting and always wrote at 95%.
  • Digital photographs marked as a digital source now run a separate film-look chain: camera rendering is undone, scatter and halation are added in linear light, and virtual development builds density through a characteristic curve, DIR couplers and RA-4 paper. Scan sources are untouched by this path.
  • Library browser, folder tree and canvas refinements.

Verified

  • The complete local strict-concurrency Swift suite passed: 1,868 tests, 20 skipped and 0 failures. Static CI also passed 84 script tests, boundary checks and provenance inspection of 1,259 files.
  • JPEG chroma subsampling was measured directly from the encoded SOF marker. Quality 100% and 95% encode as 4:4:4, quality 80% as 4:2:0. On a synthetic test pattern the previous default lost colour detail at an RMSE of 43.6 while luminance detail stayed at 0.30; the new default reduces the colour error to 0.58.
  • PNG output was decoded back and confirmed at the requested 8 or 16 bits per channel.
  • GitHub CI passed contracts, boundaries and provenance; the strict-concurrency Swift build and tests; and the GUI end-to-end test-bundle build: https://github.com/habinsong/negaflow/actions/runs/30807634413
  • arm64 and Universal ZIP, DMG, PKG and dSYM release builds passed, and SHA-256 verification passed for all 10 release assets.
  • The files remain ad-hoc signed and are not notarized. Real scanner optical, motor and USB behavior still requires device QA.

한국어

English · 한국어 · 日本語 · 简体中文 · Français · Deutsch

컬러·흑백 필름 네거티브를 반전하고 현상하며, 먼지와 스크래치를 복원하고 인화까지 하는 무료 오픈소스 macOS 앱. 카메라 스캔과 필름 스캐너를 모두 지원합니다.

웹사이트 · 카메라 스캔 가이드 · 네거티브 반전하는 법

다운로드

  • 대부분의 Mac: negaflow-1.0.5-1-macOS-universal.pkg
  • Apple Silicon 전용: negaflow-1.0.5-1-macOS-arm64.pkg
  • 수동 설치용 ZIP과 DMG도 함께 제공합니다.

중요: 서명 및 공증 상태

이 파일들은 ad-hoc 서명 상태이며 Apple 공증을 받지 않았습니다. macOS가 첫 실행을 막을 수 있습니다. 함께 제공되는 SHA256SUMS로 내려받은 파일을 확인하고, 한 번 열기를 시도한 다음 시스템 설정 → 개인정보 보호 및 보안 → 그래도 열기에서 허용하십시오.

2026년 8월 3일 19:45 KST 갱신

변경 사항

  • JPEG를 품질 95% 이상에서 크로마 서브샘플링 없이 인코딩하며 기본 품질을 100%로 올렸습니다. 그보다 낮은 설정은 고른 값을 그대로 씁니다 — 낮은 품질을 고른 의도는 파일을 줄이는 것이기 때문입니다. 내보낸 파일에서 색 해상도가 절반으로 줄지 않습니다.
  • PNG 비트 심도를 채널당 8bit와 16bit 중에서 고를 수 있습니다. 내보내기는 16bit, 빠른 내보내기는 8bit가 기본값이며 디더링은 8bit에서만 적용합니다.
  • 빠른 내보내기에 자체 JPEG 품질 슬라이더와 PNG 비트 심도 선택을 크기와 폴더 사이에 두었습니다. 이전에는 품질 설정이 반영되지 않고 항상 95%로 저장됐습니다.
  • 디지털 소스로 지정한 사진은 별도의 필름 룩 경로를 지납니다. 카메라의 표시 렌더링을 되돌리고, 선형 광량 상태에서 산란과 할레이션을 더한 뒤, 특성 곡선·DIR 커플러·RA-4 인화지로 밀도를 만듭니다. 스캔 원본은 이 경로를 지나지 않습니다.
  • 라이브러리 브라우저, 폴더 트리, 캔버스를 다듬었습니다.

검증

  • 로컬 strict-concurrency Swift 전체 테스트 1,868개가 통과했고 20개는 조건부 건너뜀, 실패는 0개였습니다. 정적 CI의 스크립트 테스트 84개, 경계 검사와 1,259개 파일 출처 검사도 통과했습니다.
  • JPEG 크로마 서브샘플링은 인코딩된 SOF 마커에서 직접 측정했습니다. 품질 100%와 95%는 4:4:4로, 80%는 4:2:0으로 인코딩됩니다. 합성 테스트 패턴에서 기존 기본값은 색 디테일을 RMSE 43.6으로 잃는 동안 휘도 디테일은 0.30에 머물렀고, 새 기본값은 색 오차를 0.58로 낮췄습니다.
  • PNG 출력은 다시 디코드해 요청한 채널당 8bit·16bit가 그대로 기록되는지 확인했습니다.
  • GitHub CI에서 계약·경계·출처 검사, strict-concurrency Swift 빌드와 테스트, GUI 종단 테스트 번들 빌드가 모두 통과했습니다: https://github.com/habinsong/negaflow/actions/runs/30807634413
  • arm64와 Universal의 ZIP, DMG, PKG, dSYM 릴리즈 빌드가 통과했고 릴리즈 파일 10개의 SHA-256 검증도 통과했습니다.
  • 파일은 계속 ad-hoc 서명·미공증 상태입니다. 실제 스캐너의 광학·모터·USB 동작은 실기기 QA가 필요합니다.

日本語

English · 한국어 · 日本語 · 简体中文 · Français · Deutsch

カラー・白黒フィルムネガの反転と現像、ホコリや傷の修復、プリントまで行う無料・オープンソースのmacOSアプリ。カメラスキャンとフィルムスキャナーに対応。

ウェブサイト · カメラスキャンのガイド · ネガを反転する方法

ダウンロード

  • ほとんどのMac:negaflow-1.0.5-1-macOS-universal.pkg
  • Apple Silicon専用:negaflow-1.0.5-1-macOS-arm64.pkg
  • 手動インストール用のZIPとDMGも用意しています。

重要:署名と公証の状態

これらのファイルはad-hoc署名で、Appleの公証を受けていません。macOSが初回起動をブロックする場合があります。同梱のSHA256SUMSでダウンロードを確認し、一度開いてから、システム設定 → プライバシーとセキュリティ → このまま開くで許可してください。

2026年8月3日 19:45 JST 更新

変更点

  • JPEGを品質95%以上でクロマサブサンプリングなしに符号化し、既定の品質を100%に引き上げました。それより低い設定は選んだ値をそのまま使います。低い品質を選ぶ意図はファイルを小さくすることだからです。書き出したファイルで色の解像度が半分になることはなくなりました。
  • PNGのビット深度をチャンネルあたり8bitと16bitから選べます。書き出しは16bit、クイック書き出しは8bitが既定で、ディザリングは8bitのときだけ適用します。
  • クイック書き出しに、独自のJPEG品質スライダーとPNGビット深度の選択を、サイズとフォルダーの間に追加しました。以前は品質設定が反映されず、常に95%で保存されていました。
  • デジタルソースとして指定した写真は、別のフィルムルック経路を通ります。カメラの表示レンダリングを元に戻し、リニア光の状態で散乱とハレーションを加えたうえで、特性曲線・DIRカプラー・RA-4印画紙で濃度を作ります。スキャン原稿はこの経路を通りません。
  • ライブラリブラウザー、フォルダーツリー、キャンバスを調整しました。

検証

  • ローカルのstrict-concurrency Swift全1,868テストが成功し、20件は条件付きスキップ、失敗は0件でした。静的CIの84スクリプトテスト、境界検査、1,259ファイルの由来検査も成功しました。
  • JPEGのクロマサブサンプリングは、符号化されたSOFマーカーから直接測定しました。品質100%と95%は4:4:4、80%は4:2:0で符号化されます。合成テストパターンでは、従来の既定値が色のディテールをRMSE 43.6で失う一方、輝度のディテールは0.30にとどまりました。新しい既定値では色の誤差が0.58まで下がります。
  • PNG出力は再度デコードし、指定したチャンネルあたり8bit・16bitがそのまま記録されることを確認しました。
  • GitHub CIで、契約・境界・由来の検査、strict-concurrency Swiftビルドとテスト、GUIエンドツーエンドテストバンドルのビルドがすべて成功しました:https://github.com/habinsong/negaflow/actions/runs/30807634413
  • arm64とUniversalのZIP、DMG、PKG、dSYMリリースビルドが成功し、10個のリリースファイルのSHA-256検証も成功しました。
  • ファイルは引き続きad-hoc署名・未公証です。実スキャナーの光学、モーター、USB動作には実機QAが必要です。

简体中文

English · 한국어 · 日本語 · 简体中文 · Français · Deutsch

免费开源的 macOS 应用:反转彩色与黑白胶片负片、显影调色、修复灰尘与划痕并输出打印,支持相机翻拍与胶片扫描仪。

网站 · 相机翻拍指南 · 如何反转负片

下载

  • 大多数Mac:negaflow-1.0.5-1-macOS-universal.pkg
  • 仅Apple Silicon:negaflow-1.0.5-1-macOS-arm64.pkg
  • 同时提供用于手动安装的ZIP和DMG文件。

重要:签名与公证状态

这些文件使用ad-hoc签名,未经Apple公证。macOS可能会阻止首次启动。请使用随附的SHA256SUMS核对下载文件,先尝试打开一次,再前往系统设置 → 隐私与安全性 → 仍要打开进行允许。

2026年8月3日 18:45 CST 更新

变更

  • JPEG 在质量 95% 及以上时不再做色度子采样,默认质量提升为 100%。低于该阈值时沿用所选数值,因为选择它们本身就是为了更小的文件。导出文件中的色彩分辨率不会再减半。
  • PNG 位深度可选,每通道 8 位或 16 位。导出默认 16 位,快速导出默认 8 位;仅在 8 位时应用抖动。
  • 快速导出新增独立的 JPEG 质量滑块与 PNG 位深度选择,位于尺寸与文件夹之间。此前质量设置不生效,始终以 95% 写出。
  • 标记为数字来源的照片会走单独的胶片外观流程:先撤销相机的显示渲染,在线性光下加入散射与光晕,再通过特性曲线、DIR 成色剂和 RA-4 相纸构建密度。扫描原稿不进入该流程。
  • 图库浏览器、文件夹树与画布细节优化。

验证

  • 本地完整strict-concurrency Swift测试共1,868项通过,20项按条件跳过,0项失败。静态CI的84项脚本测试、边界检查和1,259个文件的来源检查也已通过。
  • JPEG 色度子采样直接从编码后的 SOF 标记读取测量。质量 100% 与 95% 编码为 4:4:4,80% 为 4:2:0。在合成测试图上,旧默认值丢失色彩细节的 RMSE 为 43.6,而亮度细节仅为 0.30;新默认值把色彩误差降至 0.58。
  • PNG 输出经过回读解码,确认按请求写入每通道 8 位或 16 位。
  • GitHub CI的契约、边界与来源检查,strict-concurrency Swift构建与测试,以及GUI端到端测试包构建全部通过:https://github.com/habinsong/negaflow/actions/runs/30807634413
  • arm64与Universal的ZIP、DMG、PKG和dSYM发布构建通过,10个发布文件的SHA-256校验也已通过。
  • 文件仍为ad-hoc签名且未经公证。真实扫描仪的光学、马达与USB行为仍需实机QA。

Français

English · 한국어 · 日本語 · 简体中文 · Français · Deutsch

Application macOS libre et open source pour inverser les négatifs couleur et noir et blanc, les développer, réparer poussières et rayures, puis tirer. Appareil photo ou scanner.

Site web · Guide de numérisation à l'appareil · Comment inverser un négatif

Téléchargements

  • La plupart des Mac : negaflow-1.0.5-1-macOS-universal.pkg
  • Apple Silicon uniquement : negaflow-1.0.5-1-macOS-arm64.pkg
  • Des fichiers ZIP et DMG sont également fournis pour l’installation manuelle.

Important : signature et notarisation

Ces fichiers sont signés en ad-hoc et ne sont pas notarisés par Apple. Si macOS bloque le premier lancement, vérifiez le téléchargement avec le fichier SHA256SUMS, tentez de l’ouvrir une fois, puis autorisez-le dans Réglages Système → Confidentialité et sécurité → Ouvrir quand même.

Mis à jour le 3 août 2026 à 12:45 CEST

Modifications

  • Le JPEG est désormais encodé sans sous-échantillonnage de chrominance à partir de 95 % de qualité, et la qualité par défaut passe à 100 %. En dessous de ce seuil, la valeur choisie est conservée, puisque la choisir revient à demander un fichier plus petit. La résolution de couleur n’est plus divisée par deux dans le fichier livré.
  • La profondeur de bits du PNG est au choix, 8 ou 16 bits par canal. L’export utilise 16 bits par défaut, l’export rapide 8 bits. Le tramage n’est appliqué qu’en 8 bits.
  • L’export rapide dispose maintenant de son propre curseur de qualité JPEG et d’un réglage de profondeur PNG, placés entre Taille et Dossier. Auparavant, le réglage de qualité était ignoré et l’écriture se faisait toujours à 95 %.
  • Les photographies marquées comme source numérique suivent désormais une chaîne de rendu film distincte : le rendu d’affichage de l’appareil est annulé, diffusion et halation sont ajoutées en lumière linéaire, puis un développement virtuel construit la densité via une courbe caractéristique, des coupleurs DIR et un papier RA-4. Les sources scannées n’empruntent pas ce chemin.
  • Améliorations du navigateur de photothèque, de l’arborescence des dossiers et du canevas.

Vérification

  • Les 1 868 tests de la suite Swift locale complète en strict-concurrency ont réussi, 20 ont été ignorés sous condition et aucun n’a échoué. La CI statique a aussi validé 84 tests de scripts, les frontières et la provenance de 1 259 fichiers.
  • Le sous-échantillonnage de chrominance JPEG a été mesuré directement dans le marqueur SOF encodé. Les qualités 100 % et 95 % produisent du 4:4:4, la qualité 80 % du 4:2:0. Sur une mire de synthèse, l’ancienne valeur par défaut perdait le détail de couleur avec un RMSE de 43,6 alors que le détail de luminance restait à 0,30 ; la nouvelle valeur ramène l’erreur de couleur à 0,58.
  • La sortie PNG a été redécodée et confirmée aux 8 ou 16 bits par canal demandés.
  • La CI GitHub a réussi les contrats, frontières et provenance, le build et les tests Swift strict-concurrency, ainsi que le build du paquet de tests GUI de bout en bout : https://github.com/habinsong/negaflow/actions/runs/30807634413
  • Les builds de publication ZIP, DMG, PKG et dSYM arm64 et Universal ont réussi, et le SHA-256 des 10 fichiers a été vérifié.
  • Les fichiers restent signés en ad-hoc et non notarisés. Le comportement optique, moteur et USB d’un vrai scanner exige encore une QA sur appareil.

Deutsch

English · 한국어 · 日本語 · 简体中文 · Français · Deutsch

Freie Open-Source-App für macOS: Farb- und Schwarzweiß-Negative umkehren, entwickeln, Staub und Kratzer reparieren und drucken. Für Kamera-Digitalisierung und Filmscanner.

Website · Anleitung zum Abfotografieren · Negative umkehren

Downloads

  • Die meisten Macs: negaflow-1.0.5-1-macOS-universal.pkg
  • Nur Apple Silicon: negaflow-1.0.5-1-macOS-arm64.pkg
  • ZIP und DMG für die manuelle Installation sind ebenfalls enthalten.

Wichtig: Signatur und Notarisierung

Diese Dateien sind ad-hoc signiert und nicht von Apple notarisiert. Falls macOS den ersten Start blockiert, prüfen Sie den Download mit SHA256SUMS, versuchen Sie ihn einmal zu öffnen und erlauben Sie ihn unter Systemeinstellungen → Datenschutz & Sicherheit → Trotzdem öffnen.

Aktualisiert am 3. August 2026 um 12:45 MESZ

Änderungen

  • JPEG wird ab 95 % Qualität ohne Chroma-Unterabtastung kodiert, und die Standardqualität liegt jetzt bei 100 %. Unterhalb dieser Schwelle bleibt der gewählte Wert erhalten, denn wer ihn wählt, will eine kleinere Datei. Die Farbauflösung wird in der ausgelieferten Datei nicht mehr halbiert.
  • Die PNG-Bittiefe ist wählbar, 8 oder 16 Bit pro Kanal. Der Export nutzt standardmäßig 16 Bit, der Schnellexport 8 Bit. Dithering wird nur bei 8 Bit angewendet.
  • Der Schnellexport hat nun einen eigenen JPEG-Qualitätsregler und eine PNG-Bittiefenauswahl, zwischen Größe und Ordner platziert. Zuvor wurde die Qualitätseinstellung ignoriert und immer mit 95 % geschrieben.
  • Als digitale Quelle markierte Fotos durchlaufen jetzt eine eigene Filmlook-Kette: Das Display-Rendering der Kamera wird rückgängig gemacht, Streuung und Halation kommen im linearen Licht hinzu, und eine virtuelle Entwicklung baut Dichte über Kennlinie, DIR-Kuppler und RA-4-Papier auf. Scan-Quellen nehmen diesen Weg nicht.
  • Verbesserungen an Bibliotheksbrowser, Ordnerbaum und Leinwand.

Geprüft

  • Alle 1.868 Tests der vollständigen lokalen Swift-Suite unter strict concurrency bestanden, 20 wurden bedingt übersprungen und keiner schlug fehl. Die statische CI bestand außerdem 84 Skripttests, Grenzprüfungen und die Herkunftsprüfung von 1.259 Dateien.
  • Die JPEG-Chroma-Unterabtastung wurde direkt aus dem kodierten SOF-Marker gemessen. Qualität 100 % und 95 % ergeben 4:4:4, Qualität 80 % ergibt 4:2:0. Auf einem synthetischen Testmuster verlor der bisherige Standardwert Farbdetails mit einem RMSE von 43,6, während Helligkeitsdetails bei 0,30 blieben; der neue Standardwert senkt den Farbfehler auf 0,58.
  • Die PNG-Ausgabe wurde zurückdekodiert und mit den angeforderten 8 oder 16 Bit pro Kanal bestätigt.
  • GitHub CI bestand Vertrags-, Grenz- und Herkunftsprüfungen, Swift-Build und -Tests unter strict concurrency sowie den Build des GUI-End-to-End-Testbündels: https://github.com/habinsong/negaflow/actions/runs/30807634413
  • arm64- und Universal-Release-Builds für ZIP, DMG, PKG und dSYM bestanden, und SHA-256 wurde für alle 10 Dateien geprüft.
  • Die Dateien bleiben ad-hoc signiert und nicht notarisiert. Optik, Motor und USB eines echten Scanners erfordern weiterhin QA mit einem realen Gerät.

Full Changelog: v1.0.4...v1.0.5