[Script] Quick Picto Viewer v4

Post your working scripts, libraries and tools
robodesign
Posts: 744
Joined: 30 Sep 2017, 03:59
Facebook: marius.sucan
GitHub: mariussucan
Location: Romania
Contact:

Re: [Script] Quick Picto Viewer and Fast Slideshow creator

29 Dec 2020, 06:39

Hello, guys!

After one month of work, finally... a new version seems to be ready...

- v4.7.6 (2020-12-29)
- [new] panel to help identify image duplicates, by multiple criteria or visual similarity
- [new] indexed files list statistics panel; offers a detailed breakdown of the files and it can be used to filter the files based on file dates, file sizes, resolution, histogram data and more
- [new] files list filter panel allows users to create custom filters that can match files by image or file properties, such as resolution, histogram data, file size and so on
- [new] the keys from 1 to 6 can now be associated with preset folders, to copy/move files
- [new] shift+right-click menu; this is a selection of common functions
- [new] option to reverse order on sort
- [new] option to calculate total file sizes of selected files
- [new] option to purge image properties cached data [when files list saved as a database]
- [new] option to remove or not inexistent files from files list index on sort
- [new] option to search and replace in files list records
- [new] option to sort images based on more properties; e.g., histogram minimum and maximum/peak and other details; helpful to identify washed-out or low key images
- [new] option to select / deselect files by given search criteria
- [new] options to match only the beginning or end of strings when searching indexed files; options to match only paths or file names
- [new] users will now be asked to save modified files lists [when they are saved in plain-text format]
- changed how the favourites list is handled [ hoping for no regressions ]; it relies on two files now
- fixed regressions: sort by resolution did not work, batch image convert was failing as well
- I have set as default the option to have a fixed number of thumbnails columns... and it no longer can be deactivated


It brings files statistics, image duplicates finder [by image content] and much more...


Source files on Github:
https://github.com/marius-sucan/Quick-Picto-Viewer

ZIP Package compiled [x64 / x32]
http://marius.sucan.ro/media/files/blog/ahk-scripts/quick-picto-viewer-compiled.zip


Best regards, Marius.
Last edited by robodesign on 31 Dec 2020, 18:41, edited 1 time in total.
-------------------------
KeyPress OSD v4: GitHub or forum. (presentation video)
Quick Picto Viewer: GitHub or forum.
AHK GDI+ expanded / compilation library (on GitHub)
My home page.
User avatar
hoppfrosch
Posts: 418
Joined: 07 Oct 2013, 04:05
GitHub: hoppfrosch
Location: Rhine-Maine-Area, Hesse, Germany
Contact:

Re: [Script] Quick Picto Viewer and Fast Slideshow creator

29 Dec 2020, 11:45

Nothing else to say, but: Superb! :dance:

Thank you , Marius - great work!
User avatar
tidbit
Posts: 1196
Joined: 29 Sep 2013, 17:15
Location: USA

Re: [Script] Quick Picto Viewer and Fast Slideshow creator

30 Dec 2020, 12:34

Just a few new features! Stats are always nice to have.
rawr. fear me.
*poke*
Is it December 21, 2012 yet?
robodesign
Posts: 744
Joined: 30 Sep 2017, 03:59
Facebook: marius.sucan
GitHub: mariussucan
Location: Romania
Contact:

Re: [Script] Quick Picto Viewer and Fast Slideshow creator

31 Dec 2020, 07:12

Hello, guys!

Thank you for the feedback! I am back with a new release... the last one for this year, I promise ;-).

- v4.7.7 (2020-12-31)
- [new] the ability to move/reorder index entries using X key or Alt+Click in list view/thumbnails mode
- important bug fixes
- removing index entries when the files list was filtered resulted in files list corruption
- on files list resave, the main folders list got lost sometimes

If you are using Quick Picto Viewer , please update, the bug fixes are important ...

Best regards, Marius.
Last edited by robodesign on 31 Dec 2020, 12:21, edited 1 time in total.
-------------------------
KeyPress OSD v4: GitHub or forum. (presentation video)
Quick Picto Viewer: GitHub or forum.
AHK GDI+ expanded / compilation library (on GitHub)
My home page.
ozzii
Posts: 387
Joined: 30 Oct 2013, 06:04

Re: [Script] Quick Picto Viewer and Fast Slideshow creator

31 Dec 2020, 07:45

Thank you and happy new year....
User avatar
tidbit
Posts: 1196
Joined: 29 Sep 2013, 17:15
Location: USA

Re: [Script] Quick Picto Viewer and Fast Slideshow creator

03 Jan 2021, 12:52

thanks for the quick bug fix! dupe finding works great! so many variations to filter by. Clean up dupes followed by the powerful Sort features (not just filename, but by image analysis!) … Mmmm. Follow that by Rename which obeys the sort order, awesome
rawr. fear me.
*poke*
Is it December 21, 2012 yet?
robodesign
Posts: 744
Joined: 30 Sep 2017, 03:59
Facebook: marius.sucan
GitHub: mariussucan
Location: Romania
Contact:

Re: [Script] Quick Picto Viewer and Fast Slideshow creator

11 Jan 2021, 12:22

Hello, guys!

Happy New Year to everyone ! Thank you for the feedback.

I come in peace, to bring you a new version that expands the abilities of Quick Picto Viewer as a tool for image collection(s) organization. The folder tree panel is the highlight of this release, which should facilitate users in navigating and organizing image files.

- v4.8.0 (2021-01-11)
- [new] folder tree view - options to facilitate the copy and movement of files and to open, delete, rename folders
- [new] keyboard shortcuts to go up or down the hierarchy of folders; ctrl + page up/down
- [new] keyboard shortcuts to go to the next or previous sibling folder of the currently opened folder; alt + page up/down
- [new] menu where users can jump to different folders related to the currently opened folder: siblings, subfolders or parent folders - keyboard shortcut [Shift+F4]
- major performance improvements related to plain-text files list saving, files list deduplication, and other actions
- fixed regression: files collision dialog box never showed up [bug introduced in v4.7.6]


Best regards, Marius.
-------------------------
KeyPress OSD v4: GitHub or forum. (presentation video)
Quick Picto Viewer: GitHub or forum.
AHK GDI+ expanded / compilation library (on GitHub)
My home page.
robodesign
Posts: 744
Joined: 30 Sep 2017, 03:59
Facebook: marius.sucan
GitHub: mariussucan
Location: Romania
Contact:

Re: [Script] Quick Picto Viewer and Fast Slideshow creator

14 Jan 2021, 12:36

Hello, guys!

I am back again at it... a new version with... bug fixes:

- v4.8.1 (2021-01-14)
- the folder tree panel can now be invoked even with no folder or image loaded/opened
- find duplicate images option offers user the option to remove duplicate index entries when the files list is plain-text only
- important bug fix related to high memory usage and FreeImage that led to crashes; many thanks to TheArkive for the help!
- various bug fixes

Feedback is always welcomed. Thank you.

Best regards, Marius.
-------------------------
KeyPress OSD v4: GitHub or forum. (presentation video)
Quick Picto Viewer: GitHub or forum.
AHK GDI+ expanded / compilation library (on GitHub)
My home page.
tuzi
Posts: 75
Joined: 27 Apr 2016, 23:40

Re: [Script] Quick Picto Viewer and Fast Slideshow creator

16 Jan 2021, 22:38

Awesome!!! :thumbup: :thumbup: :thumbup: :thumbup:
I have a request, can you wrap all the options within the "Blur/pixelize selected area:Quick Picoto Viewer" panel into a simple function, like Gdip_BlurBitmap()?
robodesign
Posts: 744
Joined: 30 Sep 2017, 03:59
Facebook: marius.sucan
GitHub: mariussucan
Location: Romania
Contact:

Re: [Script] Quick Picto Viewer and Fast Slideshow creator

17 Jan 2021, 09:01

tuzi wrote:
16 Jan 2021, 22:38
Awesome!!! :thumbup: :thumbup: :thumbup: :thumbup:
I have a request, can you wrap all the options within the "Blur/pixelize selected area:Quick Picoto Viewer" panel into a simple function, like Gdip_BlurBitmap()?
Thank you . The two functions are already present in the GDI+ library wrapper . Gdip_BlurBitmap() , Gdip_BoxBlurBitmap() and Gdip_PixelateBitmap().

Best regards, Marius.
-------------------------
KeyPress OSD v4: GitHub or forum. (presentation video)
Quick Picto Viewer: GitHub or forum.
AHK GDI+ expanded / compilation library (on GitHub)
My home page.
robodesign
Posts: 744
Joined: 30 Sep 2017, 03:59
Facebook: marius.sucan
GitHub: mariussucan
Location: Romania
Contact:

Re: [Script] Quick Picto Viewer and Fast Slideshow creator

20 Jan 2021, 13:17

A new version has been released... sporting bug fixes.


- v4.8.2 (2021-01-20)
- [new] option to have the folders list from «Manage folders list» panel populate the folders tree view; same option available also in «Update selectively»...
- more friendlier with screen readers
- various bug fixes

Please let me know if you find bugs.

Best regards, Marius.
-------------------------
KeyPress OSD v4: GitHub or forum. (presentation video)
Quick Picto Viewer: GitHub or forum.
AHK GDI+ expanded / compilation library (on GitHub)
My home page.
tuzi
Posts: 75
Joined: 27 Apr 2016, 23:40

Re: [Script] Quick Picto Viewer and Fast Slideshow creator

21 Jan 2021, 10:38

Marius, Your excellent work has inspired me and now I have also completed an image tool, but there are some performance issues.
I want to cache the already drawn image at this point so that I can quickly recover them later, rather than drawing them all over again.
But it failed. :crazy: :crazy:
Can you tell me the right way to do it?
Thank you!

Here is a short demo code

Code: Select all

#SingleInstance, Force
#NoEnv
SetBatchLines, -1

#Include, <Gdip>

gosub,init

hbm := CreateDIBSection(DisplayAreaWidth, DisplayAreaHeight)
hdc := CreateCompatibleDC()
obm := SelectObject(hdc, hbm)
G := Gdip_GraphicsFromHDC(hdc)
Gdip_SetInterpolationMode(G, 7)

; drawn some pics
Gdip_DrawImage(G, pBitmap, 0, 0, DisplayAreaWidth//3, DisplayAreaHeight//3, 0, 0, PicWidth, PicHeight)
Gdip_DrawImage(G, pBitmap, 800, 0, DisplayAreaWidth//3, DisplayAreaHeight//3, 0, 0, PicWidth//2, PicHeight//2)
Gdip_DrawImage(G, pBitmap, 0, 500, DisplayAreaWidth//3, DisplayAreaHeight//3, PicWidth//2, PicHeight//2, PicWidth//2, PicHeight//2)

; I want to cache the already drawn image at this point so that I can quickly recover them later, rather than drawing them all over again.
; But it failed
; cache:=Gdip_CreateCachedBitmap(hbm, G)
UpdateLayeredWindow(hwnd1, hdc, 200, 0, DisplayAreaWidth, DisplayAreaHeight)

Sleep, 1000
; clean the Graphics
Gdip_GraphicsClear(G)
UpdateLayeredWindow(hwnd1, hdc, 200, 0, DisplayAreaWidth, DisplayAreaHeight)

Sleep, 1000
; I want to quickly recover the image from the cache.
Gdip_DrawCachedBitmap(G, cache, 0, 0)
UpdateLayeredWindow(hwnd1, hdc2, 200, 0, DisplayAreaWidth, DisplayAreaHeight)

Return

init:
	If !pToken := Gdip_Startup()
	{
		MsgBox, 48, gdiplus error!, Gdiplus failed to start. Please ensure you have gdiplus on your system
		ExitApp
	}
	OnExit, Exit

	Gui, 1: -Caption +E0x80000 +LastFound +AlwaysOnTop +ToolWindow +OwnDialogs +Hwndhwnd1
	Gui, 1: Show, NA

	; load pic from wallpaper
	Loop, Files, %A_WinDir%\Web\WallPaper\*.jpg, R
		ImgPath := A_LoopFileLongPath
	pBitmap := Gdip_CreateBitmapFromFile(ImgPath)
	If !pBitmap
	{
		MsgBox, 48, WallPaper loading error!
		ExitApp
	}

	PicWidth := Gdip_GetImageWidth(pBitmap), PicHeight := Gdip_GetImageHeight(pBitmap)
	DisplayAreaWidth:=A_ScreenWidth, DisplayAreaHeight:=A_ScreenHeight
return

GuiClose:
GuiEscape:
Exit:
	SelectObject(hdc, obm)
	DeleteObject(hbm)
	DeleteDC(hdc)
	Gdip_DeleteGraphics(G)
	Gdip_DisposeImage(pBitmap)
	Gdip_Shutdown(pToken)
	ExitApp
Return
robodesign
Posts: 744
Joined: 30 Sep 2017, 03:59
Facebook: marius.sucan
GitHub: mariussucan
Location: Romania
Contact:

Re: [Script] Quick Picto Viewer and Fast Slideshow creator

21 Jan 2021, 13:26

Thank you . I am glad you are inspired by my work.

The question you pose is difficult... Please study the code of Quick Picto Viewer ... În general , what I do is, maintain a cache of the image drawn on screen, and whenever needed, i reuse it. You must resize the image, and create clones and keep track of them, and so on; it gets messy... There is not one single solution, it depends on exactly what/how you want stuff to work and how good at organizing the code you are ;-).

Relevant functions in my code [you must dig in each function found, to understand the code]:
CloneMainBMP()
QPV_ShowImgonGui()
ResizeImageGDIwin()

Best regards, Marius.
-------------------------
KeyPress OSD v4: GitHub or forum. (presentation video)
Quick Picto Viewer: GitHub or forum.
AHK GDI+ expanded / compilation library (on GitHub)
My home page.
robodesign
Posts: 744
Joined: 30 Sep 2017, 03:59
Facebook: marius.sucan
GitHub: mariussucan
Location: Romania
Contact:

Re: [Script] Quick Picto Viewer and Fast Slideshow creator

28 Jan 2021, 04:29

Hello, guys!

I am back with an overview of the project.

Initial purpose of the project:
I wanted to create a simple script that allows me to load rapidly a list of files. In other words, I wanted to a create a script for image slideshows over hundreds of thousands of files, after I grew frustrated by how inexplicably slow IrfanView and XnView are when faced with such large sets.

Seeing how successful I was at what I wanted to do, I worked up the courage to develop it further into what Quick Picto Viewer is today.

Project goals:
Create an easy to use image organizer, editor and viewer. It must cover most of the functionality (or more than) provided by XnView, IrfanView and MS Paint.

QPV must function fast, be stable and provide the tools one might need in the context of managing massive image collections, massive meaning over half a million images. This includes, but is not limited to, image editing tools, slideshows, file organization in bulk, batch processing and so on.

Current status:
Quick Picto Viewer is currently getting close to the stated goals. Most of the features and functionalities I wanted are already implemented. Overall, it surpasses MS Paint, IrfanView and XnView in many ways. However, Quick Picto Viewer can still be found lacking some basic things, especially in the image editing department. For example, it lacks a pen/brush tool, but it has alpha masking, blending modes and many others.

QPV offers multiple ways to accomplish many tasks: opening images, copying/moving files, applying colour adjustments to images and others. This is to provide flexibility in different use-case scenarios.

Future goals:
For image editing: implement pen, brush, bucket fill tools. For image organization: improvements to finding image duplicates.

Overall, I find there is still room to improve usability, fix bugs and listen to feedback provided by people.

And in the [hopefully] near future, I would like to create a presentation video for Quick Picto Viewer.

For project detailed to-do list, see: https://github.com/users/marius-sucan/projects/1

Best regards, Marius.
-------------------------
KeyPress OSD v4: GitHub or forum. (presentation video)
Quick Picto Viewer: GitHub or forum.
AHK GDI+ expanded / compilation library (on GitHub)
My home page.
tuzi
Posts: 75
Joined: 27 Apr 2016, 23:40

Re: [Script] Quick Picto Viewer and Fast Slideshow creator

28 Jan 2021, 04:43

I have a small suggestion, when qpv displays images, it always has a mosaic visible to the naked eye, maybe it would be better to set the default display quality to high and cache the images at different sizes[like 90% 70% 50%].
User avatar
Bugz000
Posts: 76
Joined: 30 Sep 2013, 10:01

Re: [Script] Quick Picto Viewer and Fast Slideshow creator

28 Jan 2021, 12:53

oh RoboD
when i think of you
i can only see
the morning dew

with eyes alight
with passion in cinder
you always excite
with your profile on tinder

quick picto viewer
fast slideshow creator
the ultimate wooer
of AHK vindicator

I leave you now
with words of my love
i take a bow
and shoot a dove
Image
Image
robodesign
Posts: 744
Joined: 30 Sep 2017, 03:59
Facebook: marius.sucan
GitHub: mariussucan
Location: Romania
Contact:

Re: [Script] Quick Picto Viewer and Fast Slideshow creator

31 Jan 2021, 17:22

tuzi wrote:
28 Jan 2021, 04:43
I have a small suggestion, when qpv displays images, it always has a mosaic visible to the naked eye, maybe it would be better to set the default display quality to high and cache the images at different sizes[like 90% 70% 50%].
Could you please elaborate on the mosaic you see? Can you please provide visual examples?

Best regards, Marius.
-------------------------
KeyPress OSD v4: GitHub or forum. (presentation video)
Quick Picto Viewer: GitHub or forum.
AHK GDI+ expanded / compilation library (on GitHub)
My home page.
tuzi
Posts: 75
Joined: 27 Apr 2016, 23:40

Re: [Script] Quick Picto Viewer and Fast Slideshow creator

01 Feb 2021, 00:13

robodesign wrote:
31 Jan 2021, 17:22

Could you please elaborate on the mosaic you see? Can you please provide visual examples?

Best regards, Marius.
This is other software that looks much smoother.
Image

This is QPV, which looks a bit mosaic.
Image

I guess the reason is Gdip_SetInterpolationMode().

According to my tests, Gdip_SetInterpolationMode(G, 0) is the best setting for both quality and speed when the image is zoomed in or out, while still having no moire.
robodesign
Posts: 744
Joined: 30 Sep 2017, 03:59
Facebook: marius.sucan
GitHub: mariussucan
Location: Romania
Contact:

Re: [Script] Quick Picto Viewer and Fast Slideshow creator

01 Feb 2021, 05:19

Ah, okay... I thought it is something else.

The image resizing algorithm is not implemented by me, but by Microsoft in GDI+. By default, high quality resampling is not activated in QPV, but it is available to turn it on at one click away...

The moire effect is not something akin to Quick Picto Viewer or GDI+, but to the Nearest-Neighbour algorithm used. Therefore , any application that makes use of such an algorithm is prone to show such «artefacts».

Best regards, Marius.
-------------------------
KeyPress OSD v4: GitHub or forum. (presentation video)
Quick Picto Viewer: GitHub or forum.
AHK GDI+ expanded / compilation library (on GitHub)
My home page.

Return to “Scripts and Functions”

Who is online

Users browsing this forum: kunkel321, malcev and 31 guests