Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

lib zum farben hoch-/runterschrauben
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Cherry



Anmeldungsdatum: 20.06.2007
Beiträge: 249

BeitragVerfasst am: 21.10.2007, 10:38    Titel: lib zum farben hoch-/runterschrauben Antworten mit Zitat

Hi, ich brauche bitte eine Lib, mit der man mit möglichst wenig Farbverlusten mit FB im 32bit-Modus erstellte BMPs in 8bit-BMPs umwandeln kann und umgekehrt. Wichtig ist dabei, dass beim konvertieren die Farbe mit Index 0 die selbe bleibt! Kann mir da wer was empfehlen?

mfG Cherry
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 21.10.2007, 11:12    Titel: Antworten mit Zitat

Selbermachen?
Ist jetzt nicht sooooooo schwer zwinkern
Ansonsten dürfte FreeImage sowas bieten.
Schau einfach mal in der FreeImage.bi nach einer Funktion, die einen vielversprechenden Namen hat grinsen
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 21.10.2007, 13:06    Titel: Antworten mit Zitat

Aus dem Problem ist jetzt nicht ersichtlich, ob es unbedingt in FB geschehen muss (also letztendlich in der Anwendersoftware) oder ob du einfach nur die Bilder konvertieren willst (Als Entwickler). Für letzteres kann ich dir PhotoFiltre empfehlen, das kann ziemlich gut Paletten Konvertieren zwinkern Ansonsten sollte es nicht allzu schwer sien, so etwas selbst zu bauen... Farben zählen, falls es zu viel Farben sind, ähnliche Farben zu einer zusammenfassen und schon hast du eine Palette zwinkern
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Cherry



Anmeldungsdatum: 20.06.2007
Beiträge: 249

BeitragVerfasst am: 21.10.2007, 19:08    Titel: Antworten mit Zitat

Hm, es soll in FB geschehen. Und das mit dem Zusammenfassen und so - da blick ich echt nicht durch. FreeImage - da bin auch grad eben drauf gestossen. Gibts da n tut für? Und wegen dem Index 0 - ich muss mich korrigieren - nachher sollen alle Bildpunkte, die vorher Farbe #FF00FF hatten, die Farbe mit dem Index 0 haben. Und umgekehrt sollen alle Bildpunkte, die vorher Index 0 hatten, beim Farben HOCHschrauben die Farbe #FF00FF haben. Kann mir da wer helfen?

mfG Cherry
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 21.10.2007, 19:25    Titel: Antworten mit Zitat

du musst jeden einzelnen bildpunkt des bildes durchgehen und schauen, ob die farbe an diesem punkt schonmal vorkam (am besten ein array anlegen). dieses array darf dann nicht mehr als 256 einträge haben. wenn's doch mehr sind, müssen ähnliche farben (z.B. zwei weißtöne) zu einer zusammengefasst werden... auf diese weiße kannst du auch schnell das pink durch schwarz ersetzen...
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 21.10.2007, 19:25    Titel: Antworten mit Zitat

Cherry hat Folgendes geschrieben:
Hm, es soll in FB geschehen. Und das mit dem Zusammenfassen und so - da blick ich echt nicht durch. FreeImage - da bin auch grad eben drauf gestossen. Gibts da n tut für? Und wegen dem Index 0 - ich muss mich korrigieren - nachher sollen alle Bildpunkte, die vorher Farbe #FF00FF hatten, die Farbe mit dem Index 0 haben. Und umgekehrt sollen alle Bildpunkte, die vorher Index 0 hatten, beim Farben HOCHschrauben die Farbe #FF00FF haben. Kann mir da wer helfen?

mfG Cherry

1) Klar gibts für FI ein Tutorial: sogar für FB! happy
2) folgende Funktionen wären da für dich interessant:
Code:
FreeImage_ConvertTo8Bits()
FreeImage_ConvertTo32Bits()

Beide Funktionen erwarten einen Pointer auf ein FI Bild (kein FB Bild), und liefern auch einen zurück, bei der ersten auf ein 8 Bit (256 Farben) FI Bild, bei der zweiten auf ein 32 Bit FI Bild.
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Cherry



Anmeldungsdatum: 20.06.2007
Beiträge: 249

BeitragVerfasst am: 21.10.2007, 22:15    Titel: Antworten mit Zitat

äh, ich möchte vor allem deswegen eine Lib benutzen, weil der Vorgang bestenfalls 20 mal in der Sekunde stattfinden soll. Größe des Bildes ist 320x240. Und bei FreeImage verstehe ich nicht, wie ich mein pink<>Index 0 Problem löse...
aber danke für den tut Link
mfG Cherry
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 21.10.2007, 22:23    Titel: Antworten mit Zitat

Cherry hat Folgendes geschrieben:
20 mal in der Sekunde

meine güte, was hast du denn vor? wenn das in echtzeit gehen soll, würde ich lieber gleich 32bit nehmen... es kommt mir so sinnlos vor...
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 21.10.2007, 22:35    Titel: Antworten mit Zitat

Sehe ich auch so.
Mit dem Konvertieren verschwendest du mehr Zeit, als du einsparst bei der Weiterverarbeitung zwinkern .
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 21.10.2007, 22:36    Titel: Antworten mit Zitat

Vlt will er einen Softwareraytracer mit Cel-Shading bestücken lachen lachen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Cherry



Anmeldungsdatum: 20.06.2007
Beiträge: 249

BeitragVerfasst am: 22.10.2007, 22:08    Titel: Antworten mit Zitat

nein, das Programm, dem das Bild "untergeschoben" werden soll, kann nur mit 8bit...
mfG Cherry
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 23.10.2007, 16:28    Titel: Antworten mit Zitat

Hi,
mit ImageConvertRow lässt sich in FB ein Image von 32Bit auf 8Bit bringen.
Ob Index 0 dann &hff00ff entspricht glaub ich nicht?
Ein 256 Farben Bild lässt sich aber nicht wieder in ein true-color Bild wandeln, du kannst es dann im 32Bit Format anzeigen ABER es bleibt dann ein Bild mit 256 Farben mit den Augen rollen
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 23.10.2007, 18:11    Titel: Antworten mit Zitat

Das Herunterrechnen der Farbenzahl stellt ein Stück weit eine Kunst für sich dar. Zu Deiner Anforderung mit dem Index 0: Macht so betrachtet überhaupt nicht viel Sinn: Entweder willst Du in einen Grafikmodus mit nur 256 Farben gehen, dann müssen sämtliche Bilder eine gemeinsame Farbpalette besitzen (=Index 0 bis und mit 255 sind "vorgeschrieben"!) oder Du nutzst es nur zur Speicherkompression, weil die Videokarte schlussendlich wieder mit TrueColor arbeitet (z.B. GIF-Bilder in Webbrowser darstellen), dann kann jedes Bild seine eigene Farbpalette besitzen.

In meinem Kartenlegespiel hatte ich den ersteren Fall (SCREEN 13 in QB) und alles musste auf dieselbe Farbpalette umgerechnet werden. Siehe sonst auch

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/BilderVerwenden.html
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 23.10.2007, 19:19    Titel: Antworten mit Zitat

vlt definiert er zB Palette Entry 0 als Transparent oder so... is ja bei Put sicher genauso möglich...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 23.10.2007, 20:14    Titel: Antworten mit Zitat

PMedia hat Folgendes geschrieben:
vlt definiert er zB Palette Entry 0 als Transparent oder so... is ja bei Put sicher genauso möglich...


Als Transparenz dient in (fast) allen 8 Bit-Bibliothken nicht die Farbe schwarz, sondern der Index 0... Wäre also egal, wie Farbe 0 aussieht...
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Cherry



Anmeldungsdatum: 20.06.2007
Beiträge: 249

BeitragVerfasst am: 26.10.2007, 08:26    Titel: Antworten mit Zitat

also nochmal: ich habe ein Programm, das nur 8bit Grafiken annimmt. Ich will aber intern mit FreeBasic mit 32bit arbeiten, da ich mehrere Grafiken zu einer zusammenfassen will und so und MultiPut benutzen will. Also muss ich 8bit Dateien laden, unter 32bit in FreeBasic verarbeiten und dann wieder als 8bit speichern. Und zwar mit möglichst wenig Farbverlusten. Die Transparenz muss dabei die ganze Zeit die gleiche sein.
mfG Cherry
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Cherry



Anmeldungsdatum: 20.06.2007
Beiträge: 249

BeitragVerfasst am: 28.10.2007, 14:47    Titel: Antworten mit Zitat

äh, ja, aber wie speichere ich mit FreeImage ein Bild aus einem FB-Bildpuffer?
Wie ich lade, steht ja im tut, aber wie speichere ich?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 29.10.2007, 14:39    Titel: Antworten mit Zitat

Gar nicht?
Als BMP mit BSave speichern, evtl. noch mit FI konvertieren.

Oder sich die im Tutorial angesprochene Funktion anschauen, und nachvollziehen, was sie macht.
Dann drehst du den Vorgang um.
Leider hat mein Vater sich mein Laptop geborgt, sodass ich keinen Compiler und auch keine IDE da habe, um es zu testen.
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Cherry



Anmeldungsdatum: 20.06.2007
Beiträge: 249

BeitragVerfasst am: 29.10.2007, 14:55    Titel: Antworten mit Zitat

ich will aber den Fb Bildpuffer in einen Fi Bildpuffer stopfen. Ich habs eh schon probiert, aber ich krieg immer nur Segment Violations ohne Ende...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 29.10.2007, 16:18    Titel: Antworten mit Zitat

Dann zeig uns halt deinen Code, damit wir sehen, dass du es versucht hast - und viel wichtiger: Ihn korigieren können.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz