Flutter DDS Plugin
Ein Flutter-Plugin zum Anzeigen, Bearbeiten und Exportieren von DirectDraw Surface (DDS) Texturdateien. Ideal für Entwickler von Spielen, 3D-Anwendungen und Tools, die mit DDS-Texturen arbeiten möchten.
Features
- DDS-Formate: Unterstützung für DXT1 und DXT5 Kompressionsformate
- Farbmodus-Konvertierung: Verschiedene Farbmodi (BGRA → RGBA, RGBA → RGBA, RGBA → BGRA)
- Export-Funktionen: Speichern als PNG oder JPG
- Interaktive Anzeige: Zoom und Pan im Bildbetrachter
- Einfache Integration: Sowohl als kompletter Viewer als auch als einfache Anzeigekomponente verwendbar
Vorschau
Erste Schritte
Installation
Fügen Sie flutter_dds zu Ihrer pubspec.yaml-Datei hinzu:
dependencies:
flutter_dds: ^0.1.0
Und führen Sie dann aus:
flutter pub get
Voraussetzungen
- Flutter SDK 3.0.0 oder höher
- Keine native Konfiguration notwendig - funktioniert auf allen Plattformen, auf denen Flutter unterstützt wird!
Verwendung
Vollständiger DDS-Viewer
Verwenden Sie den integrierten Viewer mit allen Funktionen:
import 'package:flutter/material.dart';
import 'package:flutter_dds/flutter_dds.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: const Text('DDS Viewer')),
body: const DDSViewerWidget(),
),
);
}
}
Einfaches DDS-Anzeige-Widget
Verwenden Sie das DDSImageView-Widget, um eine DDS-Datei direkt anzuzeigen:
DDSImageView(
ddsPath: '/pfad/zur/datei.dds',
colorMode: DDSColorMode.rgba2rgba, // Optional: Standard ist rgba2rgba
)
Farbmodi anpassen
Wählen Sie zwischen verschiedenen Farbmodi:
// Verwende BGRA zu RGBA Konvertierung (z.B. für DirectX-Texturen)
DDSImageView(
ddsPath: '/pfad/zur/datei.dds',
colorMode: DDSColorMode.bgra2rgba,
)
// Keine Konvertierung
DDSImageView(
ddsPath: '/pfad/zur/datei.dds',
colorMode: DDSColorMode.rgba2rgba,
)
// RGBA zu BGRA Konvertierung
DDSImageView(
ddsPath: '/pfad/zur/datei.dds',
colorMode: DDSColorMode.rgba2bgra,
)
Technische Details
Unterstützte Formate
- DXT1: Mit und ohne Alpha-Kanal (1-Bit-Alpha)
- DXT5: Mit vollem 8-Bit-Alpha-Kanal
Geplante Funktionen
- Weitere DDS-Formate (BC7, uncompressed RGBA/BGRA, etc.)
- Mipmap-Auswahl und Anzeige
- Cubemap-Unterstützung
- Einfache Bildbearbeitung
Beispiele
Eine vollständige Beispiel-App finden Sie im /example
-Verzeichnis. Die App demonstriert:
- Verwendung des vollständigen DDS-Viewers
- Direkte Integration des DDSImageView-Widgets
- Verschiedene Farbmodi und deren Auswirkungen
- Export-Funktionen
Beitragen
Beiträge sind willkommen! Wenn Sie einen Fehler finden oder eine Funktion hinzufügen möchten, erstellen Sie bitte einen Issue oder Pull Request auf GitHub.
Lizenz
Dieses Projekt steht unter der MIT-Lizenz - siehe die LICENSE-Datei für Details.