Italia
Foro

Erledigt: API zum Austauschen von Farben

 

Jac
de
Lad
Kenn jemand ne API, mit der ich auf einem hPic eine Farbe ratzfatz gegen eine andere austauschen kann?

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
17.07.2008  
 



Ist mir nicht bekannt, aber per bitblt-Operationen (and or xor) lassen sich blitzschnell ganze Farbbereiche modifizieren.

Workaround potuto ein kleines inlineasm sein welches im membmp pixelt.

Oooder Du verwendest geschickt den -1 Modus von z.B. drawPic oder copyBmp da man hier ja die "Transparentfarbe" wählen kann und z.B. auf einen andere Grundfarbe raufkopieren kann.

[offtopic]
create("hNewPic",xx,yy,farbe)
[/offtopic]
 
17.07.2008  
 



Egal, hier mal ein Testcode  [...]  wobei sich mir die Frage an Frank aufdrängt weshalb hier der inline-ASM-Aufruf so ewig dauert bzw. warum hier der inlineasm "langsamer" ist als der XProfan-Code. (irgendwas übersehen?)

1.033 kB
Hochgeladen:17.07.2008
Downloadcounter105
Download
 
17.07.2008  
 



So gehts:  [...]  (jetzt hats mich auch interessiert...)

1.021 kB
Hochgeladen:17.07.2008
Downloadcounter89
Download
 
17.07.2008  
 




Jörg
Sellmeyer
Kannst Du es nicht im Transparentmodus auf einen entsprechend gefäbten Hintergrund kopieren:
DrawPic hBitmap&, X%, Y%; modus%[, transcol&]
Das gilt naturalmente erst ab Profan11!
Aber auch mit älteren Versionen kann man es mit einem kleinen Umweg erreichen:
-Pixel links unten in der zu ersetzenden Farbe einfärben
-Bild auf gewünschten Farbuntergrund kopieren
-Pixel wieder in der Ursprungsfarbe einfärben
-zurückkopieren

David hats ja oben schon erwähnt, aber so ne Step-byStep-Anleitung kann ja auch nicht schaden.
edit: (ok, er war sogar mit Code schneller)
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
17.07.2008  
 




Frank
Abbing
iF
Egal, hier mal ein Testcode  [...]  wobei sich mir die Frage an Frank aufdrängt weshalb hier der inline-ASM-Aufruf so ewig dauert bzw. warum hier der inlineasm "langsamer" ist als der XProfan-Code. (irgendwas übersehen?)


Du rufst die Assemblerroutine per jede Zeile neu auf. Diese vielen Dll-Aufrufe dauern eben.
Wenn du das Bild in einem Rusch kopierst ist es naturalmente schneller als XProfan. Abgesehen davon, dass die API GetPixel sehr lahm ist. Am besten, du verwendest eine DIB.
 
17.07.2008  
 



Hiernach ist der Aufruf einer Inline-ASM-Funktion mehr als 100 Mal langsamer als der Aufruf einer XProfanfunktion.

Ich muss mir mal die ENH ansehen, vielleicht lässt sich das verbessern?
 
17.07.2008  
 




Frank
Abbing
iF
Hiernach ist der Aufruf einer Inline-ASM-Funktion mehr als 100 Mal langsamer als der Aufruf einer XProfanfunktion.

Ich muss mir mal die ENH ansehen, vielleicht lässt sich das verbessern?


Der Assemblercode ist sicher optimierbar.
 
17.07.2008  
 




Jac
de
Lad
Erstmal danke.

Ich habe ien Bild auf ein Static gelegt und wollte noch die transparenten Bereiche an die Hintergrundfarbe anpassen, dafür brauche ich das. Deshalb schied das DrawPic auch aus. Das Ganze mit dem Static ist nötic wegen dem automatischen Neuzeichnen (das Static liegt NICHT auf dem hWnd und mit Subclassing und manuellem Neuzeichnen hatte ich nicht so den gewünschten Erfolg, vor allem bei der Perförmanze).
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
17.07.2008  
 



sendMessage(hBmp,stm_setImage,,hPic)
 
17.07.2008  
 




Jac
de
Lad
Das ist auch klar, aber das hilft mir bei dem Transparenzkernproblem nicht weiter. Aber deine Methode mit dem hNewPic hat mir geholfen.
Eingefügt von iF : Hier gehts weiter:  [...] 
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
17.07.2008  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

1.382 Views

Untitledvor 0 min.
Jörg Sellmeyer24.06.2020
RudiB.01.04.2020
Michael W.03.07.2016
Torben Nissen03.03.2012
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie