vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Ändern von Farben mit ColorPalette - aber wie? 
Autor: duesentrieb
Datum: 26.09.06 11:31

Ich möchte die Farben aus der Palette eines indizierten Bildes einzeln verändern können. Das Prinzip ist klar, aber der Teufel steckt im Detail.

Das Bild wird in eine Picturebox geladen, die in einem MDIChildForm namens FormImage liegt.
Wird im Hauptmenü "Palette" gewählt, wird von FormImage ein neues FormPalette geladen, das die Palette anzeigt. Über die Funktion Init() wird die ColorPalette des Bildes an die FormPalette übergeben:
  Public Class FormImage
    [...]
    Dim frmPalette As New FormPalette
    frmPalette.Init(PictureBox1.Image.Palette)
    frmPalette.ShowDialog()
  End Class
Und so sehen die interessanten Teil von FormPalette aus:
  Public Class FormPalette
 
    Private myPalette As Imaging.ColorPalette
 
    Public Sub Init(ByRef thePalette As Imaging.ColorPalette)
      myPalette = thePalette
      myPalette.Entries(1) = Color.Red     ' Das funktioniert
    End Sub
 
    Private Sub Button1_Click()
      myPalette.Entries(2) = Color.Blue    ' Das funktioniert NICHT!
    End Sub
 
    [...]
  End Class
FormPalette enthält also ein privates ColorPalette-Objekt namens myPalette. In der Funktion Init() wird diesem Objekt der Verweis auf die ColorPalette des Bildes zugewiesen, da es ja ByRef übergeben wird. Werden jetzt innerhalb von Init() die Farbwerte der Palette verändert, ändern sich die Farben auch in dem Bild. So soll es sein.
Werden aber in einer anderen Prozedur von FormPalette die Farben in myPalette geändert, ändern sich zwar die Farben in myPalette, aber das bleibt ohne Auswirkungen auf die Farben in dem Bild!

Frage: Was muss ich ändern, damit ich auch in anderen Prozeduren von FormPalette die Farben des Bildes ändern kann? Es ist übrigens NICHT möglich, eine Kopie des Bildes anzulegen, da die Bilder sehr(!) groß sein können. Ich brauche definitiv einen Weg, die ColorPalette zu manipulieren.

Vielen Dank im voraus!

Dem Ingeni?r ist nichts zu schw?r!

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Ändern von Farben mit ColorPalette - aber wie?1.370duesentrieb26.09.06 11:31
Re: Ändern von Farben mit ColorPalette - aber wie?1.011Oliver50029.11.06 21:42

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel