Flutter DDS Plugin

pub package

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

DDS Viewer 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.

Libraries

flutter_dds