Italia
Fonte/ Codesnippets

Fadetogray

 

Andreas
Miethe


Einen habe ich noch per dieses Jahr.

Bildschirm eingrauen, wie beim XP-Abmelde-Dialog.
KompilierenMarkierenSeparieren
 $H Windows.ph
Importdll("GDI32.DLL","")
struct  COLORADJUSTMENT =
caSize%,
caFlag%,
caIlluminantIndex%,
caRedGamma%,
caGreenGamma%,
caBlueGamma%,
caReferenceBlack%,
caReferenceWhite%,
caContrast%,
caBrightness%,
caColorfulness%,
caRedGreenTint%

Proc FadetoGray

    windowstyle $F0
    Var CA# = New(COLORADJUSTMENT)
    Bild anlegen
    Var Pic& = Create("hNewPic",%maxx,%maxy,0)
    Var DC& = ~CreateCompatibleDC(%hdc)
    Ausgangsbild anlegen
    Var Pic1& = Create("hNewPic",%maxx,%maxy,0)
    Var DC1& = ~CreateCompatibleDC(%hdc)
    DC vom Desktop
    Var DC2& = ~CreateDC("DISPLAY",0,0,0)
    Bilder ins DC
    ~SelectObject(DC&,PIC&)
    ~SelectObject(DC1&,PIC1&)
    Vom Desktop ins Ausgangsbild
    dient nur dazu ein Bild zu haben !
    StretchBlt(DC1&,0,0,%maxx,%maxy,DC2&,0,0,%maxx,%maxy,~SRCCOPY | $40000000)
    Window 0,0-%maxx,%maxy
    ColorAdjustment holen
    GetColorAdjustment(%hdc2,CA#)
    Blittmode auf HALFTONE setzen
    SetStretchBltMode(%hdc2,4)
    Full Color auf Werte zwischen -100 und 100

    whileLoop CA#.caColorfulness%,-100,-8

        CA#.caColorfulness% = &Loop  Grautöne
        ColorAdjustment setzen
        SetColorAdjustment(%hdc2,CA#)
        StretchBlt(%hdc2,0,0,%maxx,%maxy,DC1&,0,0,%maxx,%maxy,~SRCCOPY)
        DrawsizedPic Pic&,0,0-%maxx,%maxy;0
        Repaint

    endwhile

    Bilder freigeben
    ~DeleteDC(DC&)
    ~DeleteDC(DC1&)
    ~DeleteDC(DC2&)
    ~DeleteObject(Pic&)
    ~DeleteObject(Pic1&)
    Dispose CA#

EndProc

FadeToGray()
waitinput 10000
s4 href='./../../funktionsreferenzen/xprofan/end/'>end
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
28.12.2009  
 



Nett! Es hat mir den Tag vergraut.
 
28.12.2009  
 




ByteAttack
Habe den Effekt nur mit der ProSpeed hinbekommen!
Sehr schön
 
Website:  [...] 
Facebook:  [...] 
29.12.2009  
 



Oder manuell: [...] 

Ergraut den Bildschirm gestreckt auf 2 Sekunden, lässt sich naturalmente noch optimieren/beschleunigen.

322 kB
Hochgeladen:29.12.2009
Downloadcounter143
Download
 
29.12.2009  
 




Andreas
Miethe


Beschleunigen kann man es auch so
KompilierenMarkierenSeparieren
 $H Windows.ph
Importdll("GDI32.DLL","")
struct  COLORADJUSTMENT =
caSize%,
caFlag%,
caIlluminantIndex%,
caRedGamma%,
caGreenGamma%,
caBlueGamma%,
caReferenceBlack%,
caReferenceWhite%,
caContrast%,
caBrightness%,
caColorfulness%,
caRedGreenTint%

Proc FadetoGray

    windowstyle $F0
    Var CA# = New(COLORADJUSTMENT)
    Bild anlegen
    Var Pic& = Create("hNewPic",%maxx,%maxy,0)
    Var DC& = ~CreateCompatibleDC(%hdc)
    Ausgangsbild anlegen
    Var Pic1& = Create("hNewPic",%maxx,%maxy,0)
    Var DC1& = ~CreateCompatibleDC(%hdc)
    DC vom Desktop
    Var DC2& = ~CreateDC("DISPLAY",0,0,0)~GetDC(GetDesktop())
    Bilder ins DC
    ~SelectObject(DC&,PIC&)
    ~SelectObject(DC1&,PIC1&)
    Vom Desktop ins Ausgangsbild
    dient nur dazu ein Bild zu haben !
    StretchBlt(DC1&,0,0,%maxx,%maxy,DC2&,0,0,%maxx,%maxy,~SRCCOPY | $40000000)
    Window 0,0-0,0
    StretchBlt(%hdc2,0,0,%maxx,%maxy,DC1&,0,0,%maxx,%maxy,~SRCCOPY)
    Repaint
    ~Movewindow(%hwnd,0,0,%maxx,%maxy,1)
    ColorAdjustment holen
    GetColorAdjustment(%hdc2,CA#)
    Blittmode auf HALFTONE setzen
    SetStretchBltMode(%hdc2,4)
    Full Color auf Werte zwischen -100 und 100
    CA#.caColorfulness% = -100  Grautöne
    ColorAdjustment setzen
    SetColorAdjustment(%hdc2,CA#)
    StretchBlt(%hdc2,0,0,%maxx,%maxy,DC1&,0,0,%maxx,%maxy,~SRCCOPY)
    Repaint
    Bilder freigeben
    ~DeleteDC(DC&)
    ~DeleteDC(DC1&)
    ~DeleteDC(DC2&)
    ~DeleteObject(Pic&)
    ~DeleteObject(Pic1&)
    Dispose CA#

EndProc

FadeToGray()
waitinput 10000
ref='./../../funktionsreferenzen/xprofan/end/'>end

Das Schöne an SetColorAdjustment() ist, dass man auch Gamma-Werte,Kontraste, Helligkeit usw. sehr schnell manipulieren kann
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
29.12.2009  
 



Mit "Beschleunigen" meinte ich eher, den unperformanten Code der NProc "optimieren". ^^

Aber so viele SetColorAdjustment-Beispiel erwecken das Herz.

Wie bekomme ich eigentlich nochmal von einem HPic ein DC auf dem dann auch z.B. SetPixel(dc,... klappt?
 
29.12.2009  
 




Frank
Abbing
DC mit SelectObject() anbinden.
 
29.12.2009  
 



Ah, danke!
 
30.12.2009  
 



Ich bekomme mit AlphaBlend einfach keinen Nichtabsturz hin, was mache ich hier falsch?
KompilierenMarkierenSeparieren
 $H Windows.ph
cls
Var bm1& = ~CreateBitmap(256,256,1,32,0)
Var DC1& = ~CreateCompatibleDC(0)
~SelectObject(DC1&,bm1&)
Var bm2& = ~CreateBitmap(256,256,1,32,0)
Var DC2& = ~CreateCompatibleDC(0)
~SelectObject(DC2&,bm2&)
~bitblt(%hDc,0,0,256,256,dc1&,0,0,~SRCCOPY)
var bf&=255 * $10000 | $1000000
waitinput
~AlphaBlend(%hdc,0,0,128,128,dc1&,0,0,128,128,addr(bf&))
waitinput
30.12.2009  
 




Frank
Abbing
Der letzte Parameter ist eine Struktur:
KompilierenMarkierenSeparieren
Das sind 4 Byte, du kannst also einfach ein LongInt trasferimento.

[...] 
 
30.12.2009  
 



Ich übergeb doch die Adresse von einem Long, aber warum obiges abstürzt, keine Ahnung... bekommst Du es zu laufen?
 
30.12.2009  
 




Frank
Abbing
Übergib ein LongInt, keine Adresse. In meinem Beispiel wären es:

ftn.BlendOp,0
ftn.BlendFlags,0
ftn.SourceConstantAlpha,128 ;Transparenz 0/255
ftn.AlphaFormat,0

=

0 128 0 0

=

00000000 10000000 00000000 00000000

=

%00000000100000000000000000000000

 
30.12.2009  
 




Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

25.301 Views

Untitledvor 0 min.
RudiB.22.04.2021
Stefan8115.03.2021
N.Art18.11.2020
p.specht19.10.2020
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