wassimulator / cactusviewer Goto Github PK
View Code? Open in Web Editor NEWA small single file image viewer written in C/C++.
License: BSD 2-Clause "Simplified" License
A small single file image viewer written in C/C++.
License: BSD 2-Clause "Simplified" License
It crashes (access violation 0x0) in source.cpp/render()
on if (delta >= G->anim_frame_delays[G->anim_index] && G->anim_play) {
because G->anim_frame_delays = delays;
is 0.
and I suppose it needed to be set in stb.c/static unsigned char *stbi_xload(stbi__context *s, int *x, int *y, int *frames, int **delays)
but the if (stbi__gif_test(s))
returns false
and thus never calls stbi__load_gif_main
which very much looks like where it's set.
That's all the investigating I have time for, sorry.
Just wondering why there is no support for image thumbnail?
When a GIF is being displayed and I click either Rotale L or Rotate R, the program crashes after a moment. If the GIF is paused, this is all that happens. If the GIF is playing, then a rotated but corrupted image is being displayed until the crash.
Using Windows 10
Love this little program! It would be nice if it respected exif orientation as well. Some photos taken with my phone are displayed sideways.
Opening any image and then opening the extended clipboard (WindowsKey + V) makes it unresponsive. Only the mouse coordinates and the taskbar close button respond to inputs, everything else stops working. After some time, the app recovers and works as intended.
OS: Windows 10 Pro 64-bit
Would be cool to have JPEG XL support, it's open source and free royalty.
Wikipedia
Github C++ Reference Implimentation
It seems CactusView does not yet support viewing images with embedded ICC color profile properly. I tested with both JPG and PNG.
Test image source:
Test images transcoded by me:
Sample image can be transcoded to JPG with ICC profile using libjxl ( https://github.com/libjxl/libjxl/releases/tag/v0.9.1 ) like so:
".\libjxl-v0.9.1\cjpegli.exe" ".\forest.jxl" ".\forest_xyb.jpg" --quality=90 --xyb --chroma_subsampling=444
".\libjxl-v0.9.1\cjpegli.exe" ".\forest.jxl" ".\forest.jpg" --quality=90 --chroma_subsampling=444
Sample image can be transcoded to PNG with ICC profile using libjxl ( https://github.com/libjxl/libjxl/releases/tag/v0.9.1 ) like so:
".\libjxl-v0.9.1\djpegli.exe" ".\forest.jpg" ".\forest.png"
CactusViewer crashes when started in a way that will immediately open an image.
The crash appears to be in atidxx64.dll
Some observations:
C:\bin\CactusViewer.exe "D:\Photos\2023 Seattle\phillip_avatar.png"
file explorer > right click image > Open with
Open
dialogueC:\Photos\phillip_avatar.png
& "D:\Photos\2023 Seattle\phillip_avatar.png"
Caveat:
I found two related issues. I'll describe them separately.
If I try to open an unsupported file via the Open button - in this case a .RAF
from FujiFilm - the app correctly tells me it's not supported. At this point I can no longer view supported images. I tried various types using the Open button and it continues to show the generic image thumbnail and the error message at the bottom status bar remains. The app title contains the name of the last image it was able to render (or nothing if the first thing I tried to open at app start was a .RAF
).
If I try the above but I drag & drop the images instead then the app seg faults. Once an invalid image has been dropped (at cold open or after a valid), attempting to drop any valid or invalid image causes the app to crash. Note that the drag & drop crash does not happen when an invalid image has been first opened via the Open button. So there's something about putting the app into an invalid state with a drop that leads to a segfault on future image drops.
Hope the above isn't confusing. Let me know if you need any clarification or want this split into two separate issues.
The viewer use less than 1% of CPU when playing a GIF. If I then minimize it, it goes to 25% CPU usage and stays there. It doesn't happen if the GIF is paused when minimizing.
I am using Windows 10.
When starting the app while your current working directory is not the bin/ folder, the app crashes. It seems the app fails to load the default font. It would be great to embed the font file in the exe when building to prevent this.
Very small issue.
https://github.com/Wassimulator/CactusViewer/releases/tag/v2.1.2
Tag is 2.1.2 but the title is 2.1.1.
When you are interacting with a UI element that allows sliding (GIF scrubber and Edit Hue, Saturation etc... when while dragging you move outside the area it looses focus and stops
This makes it harder to use those sliders, it would be nice if the active UI element keeps focus and you can drag outside the 'slider' region.
I build it on windows with commit acfcc00
Thanks for this it is a really nice and easy tool.
Firstly, thanks for the great software! When I try to open the following gif in CactusViewer v2.1.3 it displays "Error: Loading GIF file failed". The gif works when I open it in chrome. It would be great if the message was a more helpful around diagnosing the problem with the gif. Is there a log somewhere that has more information?
Requested to support older hardware. It should invlove changing the shader model from 5 to 4, and replacing structured buffers with input layouts.
With two monitors the UI is blurry.
Current setup:
The window should still scale properly, but the UI shouldn't be blurry.
If I understand it correctly, the app needs to be "DPI aware".
CactusViewer is now in Scoop bucket "Extras":
https://github.com/ScoopInstaller/Extras/blob/master/bucket/cactusviewer.json
It can be installed by:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
scoop bucket add extras
scoop install extras/cactusviewer
It will add a shortcut to the start menu, and CactusViewer is also added to PATH so it can be ran from CMD without specifying the full path.
Would you like a PR with install instructions to README, or do you want to add it yourself? 🙂
Any hope for TGA support? Lots of games use this format so it's unfortunate that it's not supported.
Your program uses libwebp, make sure to update it to fix CVE-2023-5129 which is currently making the rounds.
This is a small one, but when I open an empty bitmap, which has been generated through the right-click menu, the viewer says:
Error: Component not found: file '.bmp' not supported.
I would imagine just being told that the image is empty.
I am using Windows 10.
I can see that Windows' Photos app doesn't do much better, so maybe this is a shortcoming of the Windows decoder that you are depending on or Windows really generates an invalid BMP.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.