Giter Club home page Giter Club logo

pxltextgenerator's People

Contributors

procstack avatar

Stargazers

 avatar

Watchers

 avatar

pxltextgenerator's Issues

TextBase Viewer; Edge Influenced ReachPixels Redraw

TextBase Viewer

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.

Page Output - Flip Page Output

Page Output

Implement flip page toggle option

ToDo-

  • Add Flip Output checkbox
  • When building page, invert scale of pixmap in def buildTextDisplay()

Page Output; Special Character Dict

Page Output

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

Character Settings; Add interactive Rotate

Character Settings

Add interactive feature to give two points to rotate the character based on.

ToDo-

  • Based on [x1,y1] [x2,y2], get the Atan of delta between vectors
    • Rotation orientation based on min(xDelta, yDelta) => X or Y priority
  • Add button to enter rotation mode, near the Character Viewer window

PageOutput - Implement Italics

Page Output

Add Italics to the font tag scripting system.

ToDo-

  • Add %italic% and %i% tag
    • Set skew rate by %italic:percent% default of 50%
  • Implement transform matrix to skew text.

Page Output; N-Page Support

Page Output

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

TextBase Viewer; Add check for exit/change to Edge Grow/Shrink

TextBase Viewer

Check for Slider Changes mid and exit calls processing.

ToDo-

  • Make slider only update Grow/Shrink Edge values upon release of slider
  • Check the value of the slider every pixmap redraw
  • Add QtGui.QApplication.processEvents()
    • Find exit calls to break; the loop

TextBase Viewer; Don't draw Add/Remove brush for 2-3 mouse moves

TextBase Viewer

Add 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-

  • Zooming in and out many steps in succession; 2-3 mouse moves to draw again
  • Mid process, Character Searching and Edge Grow/Shrink iterations.

ToDo-

  • TextViewer self.drawBrushRunner
    • runner>0 don't draw
    • Figure out if this is logically inconsistent, counter vs mode maintain
  • Maintain current mode, TextViewer self.curProcessingMode
    • If self.curProcessingMode == -1, self.drawBrushRunner--
    • If self.drawBrushRunner == 0, draw brush

TextViewer & Character Settings; rotate finalized character

TextViewer & Character Settings

Allow rotation of final characters

ToDo-

  • Unlock Rotation to incorporate Alpha and Final Character pixmaps
    • Check if Exported to rotate
    • Check if setting Exported value on current session exports
  • Prep regrabbing ReachPixels based on stored search input and base image
    • Add tolerance per stored ReachPixel array ---
      • charListKey.py -- 'charSamplePoints':[[1626, 202]],

pxlTextGenerator; Add undo / redo function

pxlTextGenerator

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)

TextBed & Page Output; Non-existent characters

TextBed & Page Output

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-

  • Add new Text Field for non-existent character list
  • Add characters not in Entry List to array, ' '.join(array) into the new Text Field

TextBase Viewer Tool Placement

TextBase Viewer

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-

  • Mock up tool placements
  • Figure out sliders
    • Would be cool to have the sliders go over the TextBase Viewer Window itself, not sure PyQt can support that though. Without hacking the placements.

Python Memory Instancing; Investigate the break down between unique and shared

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-

  • Test variable 'instancing' with Lists, Sets, & Dictionaries
  • Find the break down between PyQt and general Python instancing.
    • Are pixmaps considered arrays even as their own object?
  • Is pixmap.toImage(pixmap) the same thing as pixmap.clone()?
    • If seemingly the same, run timers on pixmap.toImage(pixmap) vs pixmap.clone()
  • Optimize TextViewer, TextBed, and Page Output definitions with findings.

Character Builder & Page Output - Pixels to 32Bit array

Character Builder & Page Output

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-

  • Research converting to and working with 32bit arrays
  • Convert pixel data to 32Bit
  • Implement 32bit for loops / numpy array edits
    • Not actually sure what that entails.

TextBase Viewer; Pyramid loading of pixel tollerance

TextBase Viewer

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-

  • Investigate crop idea fist!
  • Scale down image
    • Search range from scaled version
    • With lower tollerance to begin
  • Iterate to higher tollerance
    • Search edge pixels out again

formatArrayToString is needlessly large

formatArrayToString - Convert nested arrays of dicts and lists into human readable output.
Located in - includes/local_guiWidgets.py

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.

Update ReadMe

Dang it!
Do it!
... I'm not a fan of commenting ...
Or ReadMes

Character List Lazy Load

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.