Seite 3 von 3

Re: Image schnell schwarzweiß machen

Verfasst: 07.05.2010 01:12
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..

Re: Image schnell schwarzweiß machen

Verfasst: 07.05.2010 10:12
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

Re: Image schnell schwarzweiß machen

Verfasst: 07.05.2010 11:45
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.

Re: Image schnell schwarzweiß machen

Verfasst: 07.05.2010 12:07
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

Re: Image schnell schwarzweiß machen

Verfasst: 07.05.2010 13:18
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))

Re: Image schnell schwarzweiß machen

Verfasst: 07.05.2010 19:38
von The_Dark_Zim-.-
@bobobo
Langsamer <)

Re: Image schnell schwarzweiß machen

Verfasst: 07.05.2010 20:04
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)

Re: Image schnell schwarzweiß machen

Verfasst: 07.05.2010 20:30
von bobobo
The_Dark_Zim-.- hat geschrieben:@bobobo
Langsamer <)
kauf Dir einfach n schnelleren Rechner >:)