# General > Application Testing >  PhotoDemon 7.0 beta: any help testing is greatly appreciated

## Tanner_H

PhotoDemon is a portable, open-source photo editor written in VB6.  It originally started as a collection of medical and scientific imaging prototypes, and has since grown into a general-purpose editor similar to Paint.NET or GIMP.


After several years of work, I'm close to finishing a new stable release, and I am *extremely* grateful to anyone who can help test a pre-release build.  (A public beta is still a few weeks away, so this is my last chance to catch any horrific bugs.  :Embarrassment:  )

PhotoDemon's complete VB6 source code is available at GitHub.  You can browse the code there, or download a local copy using the green "Clone or Download" button on the right side of the page (~15 MB download): 

https://github.com/tannerhelland/PhotoDemon

If you don't have access to a VB6 compiler, pre-built nightly builds are available at this link (~12 MB download):

http://photodemon.org/downloads/nigh...on_nightly.zip

The usual caveats apply: use at your own risk, please don't edit images you can't afford to lose, etc.  I hope the program is largely stable, but you know how these things go...

Because the program is BSD-licensed, you are welcome to use any of its source code in your own projects, even commercial or closed-source ones.  BSD licenses only require attribution and a small disclaimer of warranty.  If you see anything you'd like to use, feel free to ask for help as it's not always obvious where features are located in the source code.  (Managing a project of this size in VB6 is... well, if you're reading this, you probably know.  It ain't pleasant!)

Finally, if you do give the program a whirl, please let me know so I can add your name to the contributor list.  I genuinely appreciate the help - and not just in this thread, but the countless times that forum members have graciously helped in the past, too.  Thank you!

----------


## gibra

I run on VB6-IDE and Immediate window shows a lot of messages and errors.
The program is freeze (see image in attach).



```
(USM) 17:55:35 | Detecting Windows® version...
(USM) 17:55:35 | Initializing all program directories...
-DBG- 17:55:35 | PD data folder points at D:\DOWNLOADS\PhotoDemon-master7\Data\
(USM) 17:55:35 | Loading all user settings...
-DBG- 17:55:35 | Initializing high-priority plugins...
-DBG- 17:55:35 | FreeImage initialized in 137 ms
-DBG- 17:55:35 | LittleCMS initialized in 20 ms
-DBG- 17:55:35 | lz4 and lz4hc compression engines are ready.
-DBG- 17:55:35 | LZ4 initialized in 20 ms
-DBG- 17:55:35 | zLib initialized in 19 ms
-DBG- 17:55:36 | zstd is ready.  Max compression level supported: 22
-DBG- 17:55:36 | zstd initialized in 22 ms
-DBG- 17:55:36 | pdResources reported: Loading core resource collection from file...
(USM) 17:55:36 | Scanning for language files...
/TMR/ 17:55:36 | Timing report: pdTranslate / load cache file - 0 ms
-DBG- 17:55:36 | Central language cache wasn't found.  Creating new cache now...
-DBG- 17:55:36 | Note: no cache found for Vlaams.  Validating language file manually...
-DBG- 17:55:36 | WARNING!  pdCrypto error in QuickHash: Provider creation failed (FYI, last DLL error is #-2146893799)
-DBG- 17:55:36 | Note: no cache found for Turkish.  Validating language file manually...
-DBG- 17:55:36 | WARNING!  pdCrypto error in QuickHash: Provider creation failed (FYI, last DLL error is #-2146893799)
-DBG- 17:55:36 | Note: no cache found for Swedish.  Validating language file manually...
-DBG- 17:55:36 | WARNING!  pdCrypto error in QuickHash: Provider creation failed (FYI, last DLL error is #-2146893799)
-DBG- 17:55:36 | Note: no cache found for Spanish__Mexico_.  Validating language file manually...
-DBG- 17:55:36 | WARNING!  pdCrypto error in QuickHash: Provider creation failed (FYI, last DLL error is #-2146893799)
-DBG- 17:55:36 | Note: no cache found for Simplified_Chinese.  Validating language file manually...
-DBG- 17:55:36 | WARNING!  pdCrypto error in QuickHash: Provider creation failed (FYI, last DLL error is #-2146893799)
-DBG- 17:55:36 | Note: no cache found for Russian.  Validating language file manually...
-DBG- 17:55:36 | WARNING!  pdCrypto error in QuickHash: Provider creation failed (FYI, last DLL error is #-2146893799)
-DBG- 17:55:36 | Note: no cache found for Portuguese__Brazil_.  Validating language file manually...
-DBG- 17:55:36 | WARNING!  pdCrypto error in QuickHash: Provider creation failed (FYI, last DLL error is #-2146893799)
-DBG- 17:55:36 | Note: no cache found for Polish.  Validating language file manually...
-DBG- 17:55:36 | WARNING!  pdCrypto error in QuickHash: Provider creation failed (FYI, last DLL error is #-2146893799)
-DBG- 17:55:36 | Note: no cache found for Norwegian.  Validating language file manually...
-DBG- 17:55:36 | WARNING!  pdCrypto error in QuickHash: Provider creation failed (FYI, last DLL error is #-2146893799)
-DBG- 17:55:36 | Note: no cache found for Malay.  Validating language file manually...
-DBG- 17:55:36 | WARNING!  pdCrypto error in QuickHash: Provider creation failed (FYI, last DLL error is #-2146893799)
-DBG- 17:55:36 | Note: no cache found for Macedonian.  Validating language file manually...
-DBG- 17:55:36 | WARNING!  pdCrypto error in QuickHash: Provider creation failed (FYI, last DLL error is #-2146893799)
-DBG- 17:55:36 | Note: no cache found for Italian.  Validating language file manually...
-DBG- 17:55:36 | WARNING!  pdCrypto error in QuickHash: Provider creation failed (FYI, last DLL error is #-2146893799)
-DBG- 17:55:36 | Note: no cache found for Indonesian.  Validating language file manually...
-DBG- 17:55:36 | WARNING!  pdCrypto error in QuickHash: Provider creation failed (FYI, last DLL error is #-2146893799)
-DBG- 17:55:36 | Note: no cache found for Hungarian.  Validating language file manually...
-DBG- 17:55:36 | WARNING!  pdCrypto error in QuickHash: Provider creation failed (FYI, last DLL error is #-2146893799)
-DBG- 17:55:36 | Note: no cache found for Hindi.  Validating language file manually...
-DBG- 17:55:36 | WARNING!  pdCrypto error in QuickHash: Provider creation failed (FYI, last DLL error is #-2146893799)
-DBG- 17:55:36 | Note: no cache found for German_2.  Validating language file manually...
-DBG- 17:55:36 | WARNING!  pdCrypto error in QuickHash: Provider creation failed (FYI, last DLL error is #-2146893799)
-DBG- 17:55:36 | Note: no cache found for German_1.  Validating language file manually...
-DBG- 17:55:36 | WARNING!  pdCrypto error in QuickHash: Provider creation failed (FYI, last DLL error is #-2146893799)
-DBG- 17:55:36 | Note: no cache found for French.  Validating language file manually...
*RAM* 17:55:36 | CURRENT: 126.352 K | DELTA: +126.352 K | SESSION MAX: 129.152 K | GDI: 2.154 (0) | USER: 787 (0)
                    DC: 3 (251:248) | HWND: 0 (0:0) | FONT: 4 (16:12) | DIB: 22 (79:57) | ICON: 0 (0:0)
                    HOOK: 0 (0:0) | TIMER: 0 (0:0) | UC: 22
-DBG- 17:55:36 | WARNING!  pdCrypto error in QuickHash: Provider creation failed (FYI, last DLL error is #-2146893799)
-DBG- 17:55:36 | Note: no cache found for Finnish.  Validating language file manually...
-DBG- 17:55:36 | WARNING!  pdCrypto error in QuickHash: Provider creation failed (FYI, last DLL error is #-2146893799)
-DBG- 17:55:36 | Note: no cache found for Czech.  Validating language file manually...
-DBG- 17:55:36 | WARNING!  pdCrypto error in QuickHash: Provider creation failed (FYI, last DLL error is #-2146893799)
-DBG- 17:55:36 | Note: no cache found for Croatian.  Validating language file manually...
-DBG- 17:55:36 | WARNING!  pdCrypto error in QuickHash: Provider creation failed (FYI, last DLL error is #-2146893799)
/TMR/ 17:55:36 | Timing report: pdTranslate / scan files in official folder - 799 ms
/TMR/ 17:55:36 | Timing report: pdTranslate / scan files in user folder - 0 ms
/TMR/ 17:55:36 | Timing report: pdTranslate / everything else - 9 ms
(USM) 17:55:36 | Determining which language to use...
(USM) 17:55:36 | Applying selected language...
(USM) 17:55:36 | Initializing theme engine...
-DBG- 17:55:36 | pdTheme reported: successfully loaded theme file: Default_Dark.xml
(USM) 17:55:36 | Analyzing current monitor setup...
-DBG- 17:55:36 | Found primary monitor:  1920x1080 BenQ GW2470 (powered by Intel(R) HD Graphics 530)
-DBG- 17:55:36 | System-wide DPI currently set to 100%
-DBG- 17:55:37 | WARNING!  pdCrypto error in QuickHash: Provider creation failed (FYI, last DLL error is #-2146893799)
-DBG- 17:55:37 | Debugger initialized successfully
*RAM* 17:55:37 | CURRENT: 130.224 K | DELTA: +3.872 K | SESSION MAX: 131.200 K | GDI: 2.162 (0) | USER: 787 (0)
                    DC: 6 (263:257) | HWND: 0 (0:0) | FONT: 5 (17:12) | DIB: 25 (84:59) | ICON: 0 (0:0)
                    HOOK: 0 (0:0) | TIMER: 0 (0:0) | UC: 22
-DBG- 17:55:37 | (The following 70 actions were logged prior to initialization.)
-DBG- 17:55:37 | (They are presented here with their original timestamps.)
-DBG- 17:55:37 | (End of pre-initialization data)
(USM) 17:55:37 | Loading import/export libraries...
(USM) 17:55:37 | Building font cache...
WARNING!  Why are you terminating an active pdProfilerLT instance?  The .StopProfiling() function exists for a reason!
-DBG- 17:55:37 | WARNING!  FormMain_Load experienced an error: #9, Indice non compreso nell'intervallo
```

----------


## Tanner_H

Hi Gibra.  Thank you for your help.  Can you tell me what version of Windows you are using?

Edit: actually, I think I've tracked down the problem.  I've committed some (potential?) fixes to the source code at GitHub.  If it's not too much trouble, could you download a fresh copy and let me know if the program starts normally?  Thank you!

----------


## gibra

> Hi Gibra.  Thank you for your help.  Can you tell me what version of Windows you are using?


Windows 10 (as you can see on my sign).
Compiled EXE run good.

Also, I've run on Windows 7 SP1, here all ok.





> If it's not too much trouble, could you download a fresh copy and let me know if the program starts normally?  Thank you!


Yes, When back to home.

----------


## Tanner_H

Oops, I had forum signatures turned off - I should probably turn those back on!

Thank you again for your help.  The crash was caused by a bad flag in the CryptAcquireContext API (CRYPT_MACHINE_KEYSET).  I misunderstood the MSDN documentation for that flag, but for some reason it didn't cause any grief on my testing PCs.  I'm glad you helped me find it.

(I'll also get you added to the contributor list.  Do you have a preferred URL?  Maybe I can use your VS6 installer wizard page?)

----------


## gibra

> The crash was caused by a bad flag...


Now PD start correclty.

I noticed some things:
1) I loaded some very small PDF files (all with transparent background + one level) but PD shows only one level. (image 1)
2) a big PDF file (45MB) shows a 'white mask', instead of image. (image 2)

3) after close all files (using File -> Close) the button in AppBar still shows the last image unloaded.

4) some string isn't translated (to Italian language)




> (I'll also get you added to the contributor list.  Do you have a preferred URL?  Maybe I can use your VS6 installer wizard page?)


My home page is: http://nuke.vbcorner.net

----------


## Tanner_H

Thank you for the follow-up testing, gibra.  You can find your name in the program's About menu and contributor list now.  (I know it's not much, but I really do appreciate the help.)

1/2 - From the attached images, I think you tested PSDs, not PDFs?  Unfortunately, I currently use a 3rd-party library to load PSD files (FreeImage).  Its PSD support is clearly poor.  I have searched and searched for a better VB6-compatible PSD library, but have yet to find a better one.  I will keep hunting for a replacement.  :/  

3 - Was this in the IDE?  If it was in the compiled exe, please let me know.  (The IDE has some peculiarities due to the way VB handles the hidden top-most window.  I haven't bothered to find a fix since the compiled .exe works correctly.)

4 - My Italian translator (a great guy, "GioRock") can hopefully update missing Italian strings before release.  Thank you for reminding me about this!

----------


## gibra

> Thank you for the follow-up testing, gibra.


 I like PhotoDemon, so I like to test it.




> 1/2 - From the attached images, I think you tested PSDs, not PDFs?


Yes, PSD files. Sorry, I've seen *Levels* so I was too curious to see how it worked.  :Big Grin: 




> 3 - Was this in the IDE?  If it was in the compiled exe, please let me know.  (The IDE has some peculiarities due to the way VB handles the hidden top-most window.  I haven't bothered to find a fix since the compiled .exe works correctly.)


Yes, in the IDE.

*Great job*, anyway.

----------


## Tanner_H

Thanks again, gibra.  Can I ask one more favor?  Can you attach (or send me) the PSD files you tested?  If time allows, I may look at writing a VB6 PSD parser, and it would be great to have extra PSD files for testing.

----------


## gibra

Files attached.

----------


## gibra

> Thanks again, gibra.  Can I ask one more favor?  Can you attach (or send me) the PSD files you tested?  If time allows, I may look at writing a VB6 PSD parser, and it would be great to have extra PSD files for testing.


News about this?

----------


## Tanner_H

Hi Gibra.  Thank you for following up on this!

Yes, PhotoDemon now offers comprehensive PSD import/export support.  I wrote a little article about it earlier this year:

https://photodemon.org/2019/02/20/ps...available.html

The import/export code is pure VB6 except for two 3rd-party dependencies covering DEFLATE support (libdeflate) and color management (littlecms).  The parser successfully reads more images than any other 3rd-party PSD engine I have tested, including GIMP, Paint.NET's PSD plugin, etc.  All PSD color models and compression types are fully supported.

Full parser source code is available at GitHub, especially the pdPSD, pdPSDLayer, and pdPSDLayerInfo classes.  

Your PSD files were helpful in developing and testing the class.  Thank you again!

----------

