oshot - Screenshot tool for extracting text on the fly banner

oshot - Screenshot tool for extracting text on the fly

66 devlogs
153h 14m 28s

Lightweight and fast tool for extracting text on the fly from a screenshot or image (OCR and Bar/QR codes)

This project uses AI

Used AI for complex math and fixing some issue on the fly (pun intended).
Always tested before shipping

Demo Repository

Loading README...

toni

Thank you, Flavortown and HackClub heart-wx

This is going to be my last devlog ever on ft.
I know, nobody is going to read this because I’ll ship a bit earlier and then all the people trying to be “famous” will be shipping really late so that they can have their message on the top, but wtv.

§

I’m so glad that I discovered this organization called Hack Club where I can win prizes for doing what I love, programming useful and fun software, in C++.

I’ve participated Flavortown on Christmas day christmas-tree-cartoon, with all the experiences and fails I had from previous big ysws events such as High Seas, with the fails being that I discovered this event too late and I’d just discover HackClub as whole heaviestersob

and then SoM, which I was able to win many Digikey credits and from there buy a RPi5 with IFixIt kits yay

In flavortown I started to put my focus on making good and usable out-of-box software, with one of them being indeed oshot. This was my first program ever that involved GUI primarly and being user-friendly first.
I managed to get so so many cookies, prizes and a cooking achivement cuz I switched my focus from complex to good programs demos.

§

While flavortown had some, tremendous, starts and especailly vote/payout issues that was affecting everyone, me included, the devs always listened and were always trying to fix the issues in the vote algorithm. It wasn’t perfect obv, but it was good enough.

I hope that the successor of flavortown being stardance will have a good start and learned lessons from ft regarding votes.

Thank you so much Hack Club for all these opportunities you are giving to teens so that they can cultivate their passion with rewards pixel-hearthug

See you in the next ysws event, hackclubers! salut

Attachment
0
toni

Added counter bubble annotation

You can see from the background how many make took to test the annotation

and running python3 scripts/icon_generator.py && cat tool_icons.h >> include/tool_icons.h && touch src/screenshot_tool.cpp && make for just fixing the icon logo+size pf

Changelog

Attachment
0
toni

added cache, so that you can store things such as previous session color from annotation color picker.
it auto saves when exiting, and please do not edit these if you don’t know what you doing. maybe remove the files/directory if you wish

Changelog

Attachment
0
toni

There has been many changes that should be noted, though some of them are worth mentioning:

  • oshot can now save/copy the whole screenshot if you don’t make a selection
  • added option to use CTRL+C instead of CTRL+SHIFT+C – now it won’t copy the image if the cursor is focused on the text tools window
  • BREAKING: removed socket implementation from linux since we are now using xclip on X11 instead for preserving the clipboard lifetime without having the systray launched.

Changelog

Attachment
Attachment
Attachment
0
toni

I didn’t do much work on the usage, though I did some refactor of the codebase to use the new rgba_t struct instead of several r/g/b/a ints, with all the shifting confusion because mfs couldn’t make a bare standard all across platforms…

Welp something I did add and fixed is the hot loading of some settings, and the addition of the theme style and filepath settings.

Changelog

Attachment
0
toni

Oshot ricing!!!!

I have read some of your votes suggestions, and decided to listen to them. introducing:

Theme customizations!

Now oshot is no longer just a boring black and blue window, you can finally rice it however you like it! And also be able to match your rice setup, and sharing it on a famous subreddit with a name (I think) violates the CoC of hackclub…

Attachment
Attachment
0
toni

Introducing Preferences window!!

Back from a VACatation indeed. Time to get working on my projects till the end of the event, though no lockin sidequest becuase I have missed week 1 heavysob

0
toni

Shipped this project!

Hours: 5.45
Cookies: 🍪 163
Multiplier: 29.83 cookies/hr

I have decided to take part of the optimization side quest, and thanks to that I’ve made a bugfix release for fixing redundant code and useless memory allocations that were silently slowing down the performances. I have also added an “Optimization” section in the README that explains the program optimizations in general, and for that I had a bit of help by Claude for rewording some phrases and making the explanations clearer. Hope y’all enjoy the ship ;)

toni

I’ve decided to participate to the optimization sidequest, and thus I have gone to the lookup of redundant code and memory allocations that were silently slowing up the program. You can see the fixes in b9651a4 (3rd changelog entry), with the addition of the Optimization section in the readme. Since i’m not actually super great with english, some parts have been reworded with claude for a clearer explaination without too many wordplays.

Releasing v0.4.3 soon and ready for the ship!

Changelog

Attachment
0
toni

Shipped this project!

Hours: 122.57
Cookies: 🍪 2812
Multiplier: 29.75 cookies/hr

Note: please read the demo release notes

I’m so happy to ship oshot v0.4
this is the greatest update the project has come across so far. Even though the interface remained similair, a lot of things as changed in the backend.
It was a super challenge rewritting the codebase, from naming convention to its structure.

For instance, the tool has introduced macOS support! Thus making it now cross-platform compatible!

Something that had to be changed was the removal of translation entirely, because it was driving me crazy and it sucked so bad that I’m ashammed of even introducing it in the first place.

For the rest, annotations and QR/Bar codes image scans have been introduced with a lot of other bugs being fixed. The OCR is not perfect, though it’s best used for documents, and sometimes may be wrong at catching up, but it’s all a question of how you select the region to scan the text, and also which language model you are currently using.
I’ll work on improving it from time to time, and patch releases may be done in the future, but you can also help me out by either submitting an issue report or DM me on slack (@toni).

Thank you so much for the patience, and thank you again for trying out my software. <3

Note: please read the release notes

toni

made text annotation input color the same as when placing it. This can be useful if typing in certain backgrounds colors, for example entirely white ones and you can’t see what you typed

0
toni

This devlog is used for reporting every bug fixes I have fixed since v0.4.0-rc1 release.

Changelog

Attachment
0
toni

I wanted to put in this devlog the changes I have done which are mostly fixes on mutli-monitor setup captures, new PRs being created and merged (thanks for the interest!) and other fixes for the new upcoming v0.4.0 release.

Stay tuned!
the image below was taken when there was an issue with multi-monitor setup capture, that’s now been fixed!

Changelog

Attachment
0
toni

Translation has been purged from oshot.
It was a PITA trying to make it work and stable without API keys and subscriptions. The only solution would be to use libretranslate, but I doubt anyone would host a kinda heavy server for just making a screenshot tool translation work.

But as William Afton says: I always come back

Changelog

Attachment
0
toni

MacOS support has arrived

Oh my God. What a journey.
Having to refactor from GLFW to Metal just for macOS was a great PIA. I’m glad the results has shown off though.

It is on a separate branch and will be merged to main after some issues have been fixed. Soon will post the video demo too.

Shootout to @Hridya for testing my program on his mac and allowing me to post a devlog using his screenshot as a preview.

btw I think this took MORE than just 5h sob-pray

Attachment
0
msw

Tagged your project as well cooked!

🔥 msw marked your project as well cooked! As a prize for your nicely cooked project, look out for a bonus prize in the mail :)

toni

dev stuff: added better result return in functions. instead of unknown failed errors, let’s actually be a bit more precise (a bit buggy ik, fixing it when I want. edit: fixed)
also added the —debug flag in releases build too for reporting issues

0
toni

decided to make a bunch of code cleaning and reformatting, along side adding the portal screenshot capture as fallback on linux. Overall, these changes have been just some fixes such as the refactor of DXGI capture on windows, and code style reformatting. Once the payouts are developed, i’ll add some features and release with a new ship

Attachment
Attachment
0
toni

Shipped this project!

Hours: 32.38
Cookies: 🍪 561
Multiplier: 17.32 cookies/hr

I’ve made this project for the purpose of extracting text on the fly without relaying on online websites that takes ages and are wrong at extracting text.
It’s useful in videogames, extracting and translating text you can’t select, etc.

Please open an issue if any feedback, bug, etc.

Thanks for trying my software :)

toni

still learning glfw+opengl3+imgui

Attachment
1

Comments

toni
toni 4 months ago

in the end is just copying the example code for the main function, and then do the rest with only ImGUI (unless talking about textures)