Git Product home page Git Product logo

artscript's People

Contributors

deevad avatar vanyossi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

artscript's Issues

Collage label options

We need an option to add labels to the collage photos.

It could be a simple checkbox to add the name of the file, or more complex a text box to add format options from imagemagick. In this later case we need to validate user data.

Application Error: convert clGetplatformIDs failed. (-1001) @...

Hi,
I have a bug since a Arch update containing imagemagick ( yay another break , I'm starting to develop a love/hate relationship with this distrib :D ). A convert bug.

I'm almost sure the bug is from my 'convert' installation as the error mention bellow. But hard to reproduce in command mode only, and so , hard to complain to imagemagick dev. So, I report here if any ideas happen. I'll also search myself around, and do various test, and report/log here if I find a way.

convert: clGetplatformIDs failed. (-1001) @ warning/opencl.c/InitOpenCLPlatformDevice/822.
convert: clGetplatformIDs failed. (-1001) @ warning/opencl.c/InitOpenCLPlatformDevice/822.
    while executing
"exec convert {*}$convertCmd"
    (procedure "convert" line 37)
    invoked from within
"convert"
    invoked from within
".f3.do.bconvert invoke "
    invoked from within
".f3.do.bconvert instate !disabled { .f3.do.bconvert invoke } "
    invoked from within
".f3.do.bconvert instate pressed { .f3.do.bconvert state !pressed; .f3.do.bconvert instate !disabled { .f3.do.bconvert invoke } } "
    (command bound to event)

Here is the visual version : http://i.imgur.com/Dzxnq4N.jpg

Code refactoring

Divide each step into a coherent process.

Right now we have a huge process for the convert option, while we could have several little functions that handle everything more efficiently.

Current gui makes difficult to browse many size options

Ideally the user could load more than 1000 sizes.
The current GUI setup does not allow to do this. When I thought the new GUI I was thinking in up to 15 sizes, but after seeing some scripts out there I find out that If you want to automatize you want to automatize extreme amounts of work.

The new GUI proposal is as follows

  • Keep the current button layout behaviour at the top. It's always visible.
  • On the bottom a whitebox listing all selected sizes.
  • A couple of buttons to add sizes from text file, or existing files.

Sizes can be added in 3 ways.

  1. Using the GUI. User selects A ratio, width and height, when he is happy hits the '+' button
  2. Using the gui add from file button. It parses a text file containing a dimension "wxh" for each line.
  3. Loaded from presets. Using the key "predefined_sizes" the user could add sizes from presets. the format is a space separated list of dimensions. ex. (1280x1024 1440x990)

An experimental way of adding size attributes could be: Add files, but instead of adding them to the convert tree, add their sizes to the output sizes list.

Managing sizes

size list will be used to select a size this selection provides the following advantages over the previous GUI implementation in two ways.

  • It allows to use the selected size from the list as the size for the preview option
  • It allows to delete the size

There can be other options to select all sizes bigger than, or smaller than, to delete their values.

Proposals

I had the idea integrate the sizes in groups. for example, if a user creates a file like this

Wallpaper size
1920x1080
1024x768
# 
Icon sizes
64x64
128x128
etc...

All sizes would be stored in independent list to be able to "load" them, or unload them from the sizes chunk.

Also it might be possible to add an resize operator, filter, mode, separatedly for each list, or for each file. (IMHO setting an operator per size is a bit exaggerated, but using one for a group of sizes kind of makes sense, as you might don't want to crop your artwork for website presets but you might want to for wallpaper presets.)

Add preselected size lists

Current Gui works well for 5 or 6 multiple sizes.
We need a new preset the user can set to automatically load a lot more sizes (50, 150) this list is additional to the GUI size and can be turned on and off.

Remember user set values between openings

Presets are nice for setting predefined values, but they require to select them in command line. This can be partly solved after solving the bug on loading presets, but still the user needs to set them explicitly on the presets file.

Presets file should be to store lists values, like sizes, layout settings or suffixes available.

The selections made by the user must be remembered between callings. So the user only has to press convert between openings while it's working on the same project.

Collage wrap around mode

With the new Krita wrap around mode, make it easy to produce image patterns from the script

Command suggested

montage (string duplicate FILE NxN) -mode Concatenate  -tile (NxN) output_name.format

Final output
tile 3 x3

montage FILE FILE FILE FILE FILE FILE FILE FILE FILE -mode Concatenate -tile 3x3 FILE_wrap3x3.png

Horizontal GUI

DIvide GUI in 4 regions

Configure (Upper area)

Quick actions.

  • load presets if user has more than one in the config file.
  • Add files
  • Remove from convert.

Files selected (left)

Lists all images with format, path, size

Options (Right)

Divided in 3 tabs

  • General options: watermark options, resize. suffix/prefix
  • Collage: label, tile, range, colors for collage, name
  • Rename: rename options like " thunar --bulk-rename "

Actions

  • Convert
  • Preview

This new GUI simplifies and makes actions easier to understand.

Separate configuration file

Having a separate file for configuration will allow the user to sync with the repository without loosing their configuration.

Image watermark w/ blending modes

ToDo

  • Integrate file dialog
  • Add Image to convert command, use tmp file.
  • It has to check that file is image or better yet, only png

Collage mode

Values: Tile size (ratio, width and height), layout (col and row), range, label and colors.

Reduce forced dependencies to only Imagemagick

Use the same model as Inkscape dependecy,

If calligraconvert not in system, do not add files to list.
This will avoid problems if xcf, ora or kra are selected as convert to files but no converter available.

Windows Build

For this we would need to bundle

Imagemagick will need to be installed

  • Imagemagick ??
  • Calligraconverter : C:%ProgramFiles%\Krita (x86)\calligraconverter.exe ?
  • inkscape ??
  • Gimp ??

Quick publish.

Develop OAuth integration for easy send to social networks.

Im particularly lazy to send my work to all the sites I have an account for. It would be fantastic If I could develop something to send a particular selected file to all those networks.

  • Deviantart
  • Tumblr
  • Facebook
    -Twitter
    etc...

Collage range selector

Working with hundreds of photos to make preview collages is not practical.

Making a collage of 100 images is not always desired. Adding a range will allow us to select several files producing several collages depending on the range

This is useful in photo to produce contact sheets.

Make openFile dialog remember last used directory

Some folders are way to deep in the file system and tk fileDialog is not as complete to navigate easily as other navigators.

Remembering the last used dir would boost the utility of the add Files dialog.

Make icon theme

Current 3 icons were made as fast as possible to have some asset to test functions. but they look ugly.

Icons needed

  • Checkbox on off
  • Folder icon
  • File icon
  • Ok
  • Cancel ??
  • Convert
  • Make ORA
  • Rename
  • Collage
  • Tab selected/not selected
  • help
  • presets

Do not unfold layered gif files in collage

When a gif file with animation properties is given to collage instead of using one tile for the image it uses one tile each frame.

I suspect this is the same for multi layered files.

HSV color selector

Use HSV color sliders to select color, or the triangle thing from gimp.

RGB sliders to select color are not intuitive

Add menu bar beautyness

Current top bar is useless, the only button available works nicely but looks ugly.

We need. Nicer looks, and needed functions.

  • Add Files
  • Remove files
  • Load settings
  • About Artscript ( This is not for a long monologue, the main idea is to list application shortcuts and this site )

Keep GUI alive

It's been quite a long learning process but finally Im making some progress.

Current master:
Gui is kept alive and responding to user events while convert is processing. There are a few glitches thought and possibly some massive bugs (allthought I polished the bigger ones)

The advantages:
Now artscript doesn't feel ike it's struggling while you wait for a conversion. It accepts user interaction. At the time that interaction is useless, but the door is open now.

The problems.

  • If you change size settings while converting all pending convert options will do the new size instead of the size you had when the convert button was pressed
  • Same goes for output name. If suffix or prefix options are touched.
  • And exactly the same for output format

The fix is not that difficult, => declare values for the convert environment instead of using the global values.

The missing bits.

  • MakeORA still freezes the GUI.

Now, back to new features.

artscript2.tcl won't launch with default presets.config

artscript2.tcl won't launch with default presets.config, and because the script require a 'preset' configuration ( even an empty one ). ( happen after renaming presets.config.example to presets.config )

Fix : unquote the line 25 :

preset=

into :
preset=
by default in presets.config.example.

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.