Image schnell schwarzweiß machen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Re: Image schnell schwarzweiß machen

Beitrag von DrShrek »

Hier eine leicht optimierte Version von GBX_GrayScale(...) nur damit Kevins Source nicht mehr ganz so toll aussieht ;-) Wer will schon den 2ten machen ;-)
http://em.q-soft.ch/files/get/J-fZLX--y ... thgbx2.zip
Hier noch etwas Sourcecode abschnitt:

Code: Alles auswählen

XIncludeFile "GBX_include.pbi"
...
Procedure DrawEffect()
  CopyImage(#Image_0, #Temp_Image_1)           
  a = StartDrawing(ImageOutput(#Image_1))
  b = CreateCompatibleDC_(a)   
  SelectObject_(b, ImageID(#Temp_Image_1))
  c = Random(255)

  start = timeGetTime_()
  GBX_GrayScale(a,b,c,@dd)   ; <<<<<<<<<<<<<<<<<<      Hier die GBX Funktion
  ende = timeGetTime_() - start
  
  DeleteDC_(b)
  StopDrawing()
  SetGadgetState(#Gadget_1, ImageID(#Image_1))
  SetWindowTitle(#Window_0, "GPX4PB Tester (GraphicalDLL4PB) GBX_GrayScale : " + Str(ende) + " ms")
EndProcedure 
...
Ich denke damit sind die Bedenken von 'The_Dark_Zim-,-' kein Thema mehr: (Keine DLL -> sondern StaticLib und einfacher Aufruf der GBX_ Funktionen:
The_Dark_Zim-.- hat geschrieben:Das von DRShrek hm 1. dll 2. viel Arbeit es einzupflegen, aber wenn nichts weiter auftaucht muss ich es wohl Testen..
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
The_Dark_Zim-.-
Beiträge: 372
Registriert: 18.03.2008 16:53

Re: Image schnell schwarzweiß machen

Beitrag von The_Dark_Zim-.- »

... Verdammt, immer der doofe debugger ...
Das mit dem -1 hab ich auch bemerkt :D Hatte ich aber nicht editiert :P

Aber schön zu Wissen das es schneller geht :bounce:
Werde das ein wenig testen ;)

@Edit: mkey mit ohne Debugger ist Kevin's am schnellsten ;)

@ DrShrek
Bei deinem Programm bekomme ich nur eine graue Fläche ... ist das normal?
Und wo bekomme ich die lib her? Ohne kann ich es ja nicht testen, bzw. den Code einbauen.

Gruß und THX Zim
PB: 5.xx LTS x86/x64 | WIN: 10 Pro x64, Linux Mint x64
Benutzeravatar
SoS
Beiträge: 340
Registriert: 29.08.2004 09:31
Kontaktdaten:

Re: Image schnell schwarzweiß machen

Beitrag von SoS »

The_Dark_Zim-.- hat geschrieben:
@ DrShrek
Bei deinem Programm bekomme ich nur eine graue Fläche ... ist das normal?
Und wo bekomme ich die lib her? Ohne kann ich es ja nicht testen, bzw. den Code einbauen.

Gruß und THX Zim

Code: Alles auswählen

c = Random(255)
Einfach noch mal starten,hattest einfach nur nen ungünstigen Wert erwischt.
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Re: Image schnell schwarzweiß machen

Beitrag von DrShrek »

The_Dark_Zim-.- hat geschrieben:@ DrShrek
1) Bei deinem Programm bekomme ich nur eine graue Fläche ... ist das normal?
2) Und wo bekomme ich die lib her? Ohne kann ich es ja nicht testen, bzw. den Code einbauen.
Gruß und THX Zim
zu 1) wie SoS schon sagt ich hatte hier ein Random(255) drinnen.
zu 2) Gib mir bitte noch ein paar Tage... ich habe auch noch ein Real Life mit: Frau und Kindern, Haus und Garten und auf Arbeit wollens mich auch regelmässig und lange sehen ;-)
Ich kann Dir aber gerne eine Vorab geben...dann ist das aber noch ungetestet und auch nicht dokumentiert und kann sich noch verändern.

Die Fertige Lib gibt es dann (wenn soweit fertig und erprobt) hier: http://www.purebasic.fr/german/viewtopi ... 11&t=22434
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Image schnell schwarzweiß machen

Beitrag von bobobo »

ää .. tja .. also wer das sagenhafte iview32 hat kann's auch so (Pfade anpassen zur Not)

Code: Alles auswählen

jpg.s=Chr(34)+"X:\desktop-hd-wallpaper (36).jpg"+Chr(34)
gray.s=Chr(34)+"X:\desktop-hd-wallpaper (36)_grey.jpg"+Chr(34)
start=ElapsedMilliseconds()
RunProgram("V:\Programme\IrfanView\i_view32.exe "+jpg+" /gray /convert="+gray,"","",#PB_Program_Wait)
MessageRequester("",Str(ElapsedMilliseconds()-start))
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
The_Dark_Zim-.-
Beiträge: 372
Registriert: 18.03.2008 16:53

Re: Image schnell schwarzweiß machen

Beitrag von The_Dark_Zim-.- »

@bobobo
Langsamer <)
PB: 5.xx LTS x86/x64 | WIN: 10 Pro x64, Linux Mint x64
Andreas
ToolbarKönig
Beiträge: 142
Registriert: 08.09.2004 08:33

Re: Image schnell schwarzweiß machen

Beitrag von Andreas »

Code: Alles auswählen

UseJPEGImageDecoder()
UseJPEGImageEncoder()


jpg.s="desktop-hd-wallpaper (36).jpg"
jpg1.s="desktop-hd-wallpaper (36)1.jpg"
LoadImage(0,jpg)


start=ElapsedMilliseconds()
DC = StartDrawing(ImageOutput(0))
GetColorAdjustment_(DC,CA.Coloradjustment)
SetStretchBltMode_(DC,#HALFTONE)
CA\caColorfulness = -100
CA\caBrightness = 10
SetColorAdjustment_(DC,CA)
StretchBlt_(DC,0,0,ImageWidth(0),ImageHeight(0),DC,0,0,ImageWidth(0),ImageHeight(0),#SRCCOPY)
StopDrawing()


MessageRequester("",Str(ElapsedMilliseconds()-start))
SaveImage(0,jpg1,#PB_ImagePlugin_JPEG)
Gruss Andreas
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Image schnell schwarzweiß machen

Beitrag von bobobo »

The_Dark_Zim-.- hat geschrieben:@bobobo
Langsamer <)
kauf Dir einfach n schnelleren Rechner >:)
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Antworten