Code Monkey home page Code Monkey logo

githubzoomablereference's Introduction

ZoomableReference

Make painting with reference much more easier.

basically, this WPF is topmost window with one image element and few buttons, by the time it's become much more: Saving windows, drag-drop, rotation and much more.

Download

Click on 'Release' or here.

than download the Zip file (ZoomableReference.zip).

  1. open the zip file and drag all the files in to new folder (I create folder in desktop for that)
  2. double click on the file 'ZoomableReference.exe' to start the program.

How to use:

The program have 3 windows: Manager window, Reference window, and Layout window (and setting window).

Manager Window:

Manager window

The first window that start is the window manager, when this window close, the program close.

  • 'Add windows commands' - those commands applies to all the windows.

  • 'Soft' - Make all the layout windows moveable/editable again (will explain later)

  • 'Save state' - Save the current state of the windows to .zrf file, include position and size of the window and path of the image.

  • 'Load state' - Close open windows and load state from file, so you can continue from the last you stop.

  • 'Save preset' - Save the reference windows without the path to the image in 'Presets' folder in the program path.

  • 'Load preset' - Load preset, and NOT close the windows.

  • Options > Settings - open setting manager. (Right size of the window:)

  • 'Close' 'Toggle lock' 'Hide' Show' - Apply those commands on selected window in the list.

  • 'Refresh' - Refresh the list to include or exlude windows from the old list.

  • The list - Show all the windows that opened by this manager and show them as path to the image.

  • 'Protection' - I have program that always make problem when I minimize it, so I make small window on the screen so now I can't click on the Minimize button of that program.

Reference window:

Reference window

  • '...' - Browse button, where you can select file.
  • 'X' (red) - Close the window.
  • 'URL' - Make field visible so you can paste URL in it and click the 'Load' to load it.
  • 'Move' - Allow the user to drag the window on the screen.
  • 'Reset' - Reset the position and the size of the image in the window to the default values.
  • 'Color' - Change the color of the background of the window to the value of the field below it.
  • '<->' 'Rotate'... - Flip the image horizontal or verrical, and allow to rotate the image with the mouse wheel.
  • 'Hide' - Minimize the window, so you can do somthing else and window won't cover the screen.
  • 'Lock'/'Unlock' - Toggle lock of the window. when lock, you can't drag, zoom or rotate the image, also you can't drag or resize the window.

Mouse and keyboard:

  • Hold and drag left mouse button - Drag the image in the window.
  • Use the mouse wheel - zoom-in and out.
  • hold Left Control (ctrl) - Mouse wheel rotate the image.

You can drag and drop links and files of images on the window and it's will try to show them. (Not everything work yet)

Future window:

Layout window

this window has no window, it's fullscreen mode, and you can drag the image around and change the opacity. To make things easier, while you hold the 'left ctrl' you can drag and zoom-in/out anywhere on the screen, things will be more clear if you try it.

the window has 2 states - Solid and Soft, Solid mean you can't move the image, zoom or change anything, but you click through the image. Soft mean you can move, zoom or even change image.

  • 'X' - Close the window.
  • _ - minimize the window.
  • 'Solid' - Mouse clicks move through the image to the programs below it.
  • 'Load' - Browse for image in the window to load on the screen.
  • Slider - Change the opacity.
  • flip and rotate buttons are also here.

Settings window:

Settings window

Here you can change the reference window's mode.

'Bring focus to...' - Choose if the command 'Show' also bring focus of the window.

Thanks:

ZoomPan

DragDrop

Newtonsoft Json

githubzoomablereference's People

Contributors

mosheg770 avatar

Stargazers

 avatar

Watchers

 avatar

githubzoomablereference's Issues

Add more image types

Need to add more formats/types or images to the browser, in the reference window, probably also in layout window.
for now there is only .jpg .jpeg .png

Mirror image

Add button that flip the image horizontal and another for vertical.

Totally re-design the reference window.

There is way too much buttons, and they too close to each-other, most make something.

like menu in the manager window that change all the windows buttons.
mean also change in the focus manager.

what I can remove:
Save size N position - the manager window do that.

make few modes:

  • simple: No load buttons, no change background.
  • advance: all the buttons are showing.

Changes of few days

For personal changelog:
נעשה:
סיבוב - סיבוב של התמונה במקום
מראה - מימין לשמאל ל-שמאל לימין. מראה
מנעול - כפתור שנועל את הלוח במקום, אי אפשר לעשות שינויים עד שלוחצים על כפתוח מסויים.
\התמונה הולכת אחרי משהו כמעט שקוף, והיא עצמה מסתובבת סביב עצמה
\חלון מנהל מעל הכל
\אפשר לראות את כל החלונות ברשימה בחלון מנהל
\אפשר למזער, להחזיר או לסגור חלון דרך החלון מנהל.
\לפתוח כמה תמונות בגרירה אחת לחלון מנהל - מיותר בינתיים, אפשר ליצור תבניות
\להחזיר את החלונות אחרי שמחביא אותם כשרוצה לשמור, במיוחד אם ביטל
\לתת לחלון פתוח פוקוס כשלוחצים show במנהל, אבל לא כל הזמן.
\ליצור חלון הגדרות שמרכז הכל.

אפשר להפוך reference window ל layout window ולהפך -- לא צריך, אפשר לנעול
אפשר לעשות את זה מהחלון מנהל -- לנעול דרך החלון מנהל

State load as minimized

When save state while the reference window minimized, it's save them without size.

Solution is to show the windows before making states.

Lock reference image

I need button that toggle lock, while it's lock, you can't move the image, you can't zoom, and you can't do anything, most of the buttons disappear, click again and they will be back.

could be done with some layer that is above all, except the lock button, the background is almost transparent (argb - #01000000), almost impossible to see it.
the other way is to catch the every mouse preview and block it.
anyway, the text change, lock and unlock.

also, maybe nice button for the manager window. (lock all - unlock all)

maybe also save with lock state - not important, but it's better.

Load image by drop to manager.

Need to drop images to the manager, and the manager should create new reference with those images.

Create reference by default.

Disable topmost with button

When you make lot of windows or sometimes you just want to disable the topmost, and return it with the same button.

Rotate image reference

thinking about it, I make circle you can drag and this rotate the image, could be interesting.

Drag and Drop image from browser

There was improvement, but still need solution for images in format: data:image/png;base64,
for temporary solution you need to search for the actual link.

Close Future window

There is no buttons anywhere to close those windows, not in the manager and no on the window.

Remove 'Size canvas'

Remove the Size canvas and the csv and all that, everyone should use the manager window instead.
this make it very hard for backward compatibility. because it's csv file.

Update README

Nothing to do yet, but remember to update the 'how to use' before the next milestone.
flips, buttons and other changes.
and also make sure everything work an should be, make release notes.

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.