procstack / pxltextgenerator Goto Github PK
View Code? Open in Web Editor NEWGather handwriting from a photo/scan into a character library; Export text as 'handwritten' images!
License: GNU General Public License v3.0
Gather handwriting from a photo/scan into a character library; Export text as 'handwritten' images!
License: GNU General Public License v3.0
When the ReachPixels are redrawn in the TextViewer after Reading Fitted Scaling
(I gotta change the name of that button), the Grow/Shrink edges are lost in the redraw
ToDo-
_See if its running the correct redrawReachPixel function
_Make sure edges arn't lost in the Read
for some reason.
Implement flip page toggle option
ToDo-
def buildTextDisplay()
Special Character support currently only exists in the TextBed
But special characters should be maintained by the project, not a hardcoded system.
Allowing N-number of special characters based on input text per character item in the Char Entry List
To-Do -
_Add basic special characters to a default database that is appended to when new special characters are generated.
_Double check any special characters not existing are updated in the special character list
|-When renaming an existing special character,
Check if special name exists as a Default special character (Optional, shouldn't step on feet without)
If none exist in the char list, remove that special character dict entry.
_Update Character Importer
|-When importing an existing charKeyList, build special character list from charKeyList.keys()
_FINAL_Update character display systems in TextBed and Page Output
There must be a way to catch this signal. I've yet to find this online, but maybe after any redraws I could grab the pixmap, by doing so, maybe there is an error thrown I could catch with a try/except
ToDo-
Add interactive feature to give two points to rotate the character based on.
ToDo-
Add Italics to the font tag scripting system.
ToDo-
%italic%
and %i%
tag
%italic:percent%
default of 50%There is foundational support for multiple pages per pageGroup list items.
Build, Output, and Import doesn't check for N-pages,
To-Do -
_Update Page Build/Update process to build roll over pages
|- Add pages to current pageGroup
_Update exporter to nest page data into another list array[], N-Pages array
_Update importer to traverse nested pages per pageGroup
_Needing to load a character from the viewer before any edited data is stored to existing characters.
_Needing to load a text base image prior to loading exported images. Adding extra steps before producing images.
Check for Slider Changes mid and exit calls processing.
ToDo-
QtGui.QApplication.processEvents()
break;
the loopAdd support to toggle off Add/Remove brush drawing for 2-3 mouse moves, toggle hold.
This should speed up peripheral modes.
What this should help-
ToDo-
Allow rotation of final characters
ToDo-
Add in an Undo and Redo feature
ToDo-
TextBase Viewer - Store prior ReachPixel / Add / Remove / Edge pixel arrays
Character Settings - Store prior changes to an array, [parameter, value]
Page Output - Store prior changes to an array, [parameter, value]
Page Output - Add undo button to deleting a Page Group. (Object still exists, just not displayed)
Non-existent characters break when searching the existing character entry list.
offset=[ leftStart-charData['spacingLeft'],-charData['baseline']+self.baseLine ]
TypeError: 'NoneType' object has no attribute '__getitem__'
ToDo-
Investigate the idea of moving all the tools to the left bar, left of the TextBase Viewer
Might help clean up the top bar and keep things organized allowing for more tools in the future.
ToDo-
Python doesn't have pointers, but does seem that arrays can be shared as variables. Where setting variables to arrays will inherit changes from the former.
I'm calling many MANY pixmap.toImage(pixmap)
series.
ToDo-
pixmap.toImage(pixmap)
the same thing as pixmap.clone()
?
pixmap.toImage(pixmap)
vs pixmap.clone()
TextViewer
, TextBed
, and Page Output
definitions with findings.When performing pixel processing functions, execute them on 32 bit arrays instead of a pixel by pixel basis.
This will significantly speed up pixel processing definitions/functions.
ToDo-
Set up a pyramid loading system of tolerances on smaller chunks of image.
Currently working on entire image
This gets slower the larger the image is
User setting -
210 tollerance on 1000x700 image ----
1st iteration) 180 tollerance on 500x350 image
2nd ittr) 200 toll on 800x630 image
3nd ittr) 210 toll on 1000x750 image
Idea -
Might be a solution at first to have the user set a bounding box that they are looking within
Then scan only through that cropped image.
Then with ReachPixels, generate the image overlay on the crop, Painter to add the ReachPixels over the full sized image.
ToDo-
formatArrayToString checks for List or Array in an if statement, doing VERY similar things in each if.
Could be solved my setting a key array and running the original array through an enumerate
for loop instead of for in
Should reduce size of formatArrayToString in half.
Dang it!
Do it!
... I'm not a fan of commenting ...
Or ReadMes
Reimpliment the lazy loading system to the character viewer list.
(Code exists and working, just need to reimpliment when the PNGs on disk load and connect the scrollValueChange event back into the lazy load check function)
Loading all 340+ characters is slow for an initial load when it just needs to be the database file prior to using the characters in pages or test bed viewing.
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.