split the gen1 and gen3 ui...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
573
ui (gen1)/TODO.otl
Executable file
@ -0,0 +1,573 @@
|
||||
Priority work
|
||||
[_] 67% Preview II
|
||||
[_] BUG: moving the last image from a ribbon up will make the screen jump...
|
||||
[_] do something sensible when no images are loaded...
|
||||
| in the simplest case, just write something in the middle of
|
||||
| the background...
|
||||
|
|
||||
| this might include a set of instructions...
|
||||
[_] 46% native client
|
||||
[_] 19% Generic
|
||||
[X] make cache generator accept command-line args...
|
||||
| very basic form...
|
||||
[_] 0% import UI
|
||||
| (a-la IrfanView fast browser)
|
||||
[_] directory
|
||||
[_] JSON
|
||||
[_] CouchDB URL
|
||||
| low priority at this point...
|
||||
[_] 0% export UI
|
||||
[_] JSON
|
||||
[_] directory
|
||||
[_] 33% export targets
|
||||
[X] whole tree
|
||||
[_] this ribbon and above
|
||||
[_] this ribbon/selection
|
||||
[_] default settings in platform-specific JSON file
|
||||
| this file should be auto-loaded on first run -- when no
|
||||
| other settings are present...
|
||||
|
|
||||
| should be something like:
|
||||
| loadDefaultSettings()
|
||||
|
|
||||
| that will load:
|
||||
| cef-defaults.json - for CEF
|
||||
| phonegap-defaults.json - for, you guessed it...
|
||||
| ...
|
||||
[_] make platform detection an issue for the abstraction layer
|
||||
| as it is now the case with dumbJSONFile(...)
|
||||
[_] 50% Windows (CEF / CEFPython)
|
||||
[_] package a portable exe
|
||||
[_] 50% basic wrapper
|
||||
[X] JSON reader/writer
|
||||
[_] directory lister
|
||||
[X] basic test
|
||||
[_] 50% Android (PhoneGap)
|
||||
[_] 50% package as W3C widget to be compatible with PhoneGap builder...
|
||||
[X] make the basic test package...
|
||||
| https://github.com/flynx/ImageGrid-Viewer
|
||||
[_] automate the build and push process (sub-git?)
|
||||
[_] 0% basic wrapper
|
||||
[_] JSON reader/writer
|
||||
[_] directory lister
|
||||
[X] basic test
|
||||
[X] disable transitions...
|
||||
[_] 0% bugs
|
||||
[_] taps register as two taps
|
||||
| possibly a tap and a click...
|
||||
[_] 66% Standalone utils
|
||||
[X] generate cache
|
||||
| resize images and put them into .ImageGrid.cache/<size>px directory
|
||||
|
|
||||
| should rebuild JSON
|
||||
[X] generate JSON
|
||||
| build JSON data from a directory...
|
||||
[_] generate dir tree
|
||||
| use a json file to generate a fav dir tree
|
||||
[_] make the system more tolerant to missing or wrong fields in json data...
|
||||
[_] make loading of different resolution images smooth...
|
||||
| can be done in several ways:
|
||||
| - cache images before loading...
|
||||
| - two layers...
|
||||
| - always keep the lowest res image loaded...
|
||||
[_] BUG: click does not update the image counter...
|
||||
[_] 0% split functionality into modules...
|
||||
[_] core
|
||||
[_] extras
|
||||
[X] BUG: images.json data behaves sometimes loses data...
|
||||
| possibly because some fields (ctime, preview, etc) are missing...
|
||||
[X] load sorted images from JSON data
|
||||
| curently the sort is as in file...
|
||||
[X] fix image ordering...
|
||||
[X] add basic image info display...
|
||||
[X] 100% dynamic loading of images
|
||||
[X] 100% stream on navigate
|
||||
| parameters that affect loading:
|
||||
| - current view size -> image size must be closest
|
||||
| above this
|
||||
| - viewer width in images -> number of widths (2-3)
|
||||
| distance is used to trigger
|
||||
| loading or unloading of images
|
||||
| depending on direction
|
||||
| NOTE: this is done for each
|
||||
| image size in use.
|
||||
|
|
||||
| NOTE: here the trigger must be proximity to the view as we
|
||||
| can reach an image not just by navigating close but
|
||||
| also by scrolling/dragging to it (without changing the
|
||||
| current image)...
|
||||
[X] store structure separately from ui (mirror context)
|
||||
| an alternative would be to store the whole thing (sans images)
|
||||
| in DOM, but that ma get very big.
|
||||
|
|
||||
| storing the structure will enable us to have partial structures
|
||||
| thus updating the structure of a very big set without the user
|
||||
| noticing.
|
||||
[X] 100% sync context (handle edit events)
|
||||
[X] identify action position
|
||||
| use id...
|
||||
[X] update ui structure (handle navigate/move events)
|
||||
[X] sizes on zoom
|
||||
| still needs work...
|
||||
[X] make shift up/down direction-aware...
|
||||
| i.e. if we are going through images in a direction select the
|
||||
| next image in that direction when shifting...
|
||||
[X] 100% load state
|
||||
[X] load mechanics
|
||||
[X] auto-load last state on startup
|
||||
[X] manual (console)
|
||||
| loadJSON(loadJSONFile(...))
|
||||
[X] 100% load folder
|
||||
[X] drag'n'drop
|
||||
[X] 100% save state
|
||||
[X] minimal: Local Storage (manual)
|
||||
| works across all targets (CEF, PhoneGap, browser)
|
||||
[X] manual local JSON (file)
|
||||
[X] 100% autosave
|
||||
[X] on edit
|
||||
[X] on navigate
|
||||
| only save position to save time...
|
||||
[X] on timer
|
||||
[X] on unload
|
||||
[X] manual incremental save
|
||||
[X] manual named save
|
||||
[X] versions/history
|
||||
[X] 100% UI
|
||||
[X] 100% disable opacity for current ribbon
|
||||
[X] 1.0 opacity for current ribbon mode
|
||||
| automatically turned on for magnifications over 2 images
|
||||
| per screen....
|
||||
[X] current image indicator
|
||||
| this can be:
|
||||
| - rectangle (not border)
|
||||
| - underline
|
||||
| - corner icon
|
||||
[X] 100% settings/help screen
|
||||
[X] keyboard config/help
|
||||
[X] auto-generated settings interface
|
||||
[X] "hide other ribbons" mode
|
||||
[X] fix single image mode
|
||||
| need to center the image correctly...
|
||||
[X] 100% add screen buttons for all actions...
|
||||
[X] navigation
|
||||
[X] actions
|
||||
[X] zooming
|
||||
[X] 100% zoom presets
|
||||
[X] single
|
||||
[X] three
|
||||
[X] wide
|
||||
| toggle...
|
||||
[X] 100% control single-image mode animations
|
||||
[X] scroll
|
||||
[X] switch (no transition)
|
||||
[X] 100% layout
|
||||
[X] 100% tablet
|
||||
[X] stretch to full screen
|
||||
| NOTE: viewer 0% sizes may break things...
|
||||
[X] make buttons semi-transparent and same color as bg in all modes
|
||||
| just like single image mode...
|
||||
[X] make bg color switching in all modes
|
||||
| black, white, gray
|
||||
[X] 100% PC
|
||||
[X] stretch to full screen
|
||||
[X] make view correctly resizable
|
||||
| appears to work correctly but need to click an image onResize...
|
||||
|
|
||||
| XXX find a way around always clicking things...
|
||||
[X] hide buttons for keyboard actions
|
||||
[X] web
|
||||
| is this is the same as the above two? (with auto-select)
|
||||
[X] add screen-width images next/prev navigation...
|
||||
[X] 100% debug mode
|
||||
[X] toggle cross-hair
|
||||
[X] 100% sorted images in ribbons
|
||||
[X] 100% stage I: position the promoted/demoted image correctly
|
||||
| and correct positioning on promote/demote
|
||||
|
|
||||
| input:
|
||||
| [01][02][03][04][05][06][07][08][09][10][11] ... [19][20]
|
||||
|
|
||||
| single ribbon, nothing special here.
|
||||
|
|
||||
|
|
||||
| general sort:
|
||||
| [05] [10][11][12] [15] [19][20]
|
||||
| [01] [04] [06][07][08] [13][14] [18]
|
||||
| [02][03] [09] [16][17]
|
||||
|
|
||||
| each strip is positioned above or below the place it was
|
||||
| shifted from.
|
||||
| if there is not enough space use weights to balance the
|
||||
| thing.
|
||||
|
|
||||
|
|
||||
| selected [08]:
|
||||
| [05] [10][11][12] [15] [19][20]
|
||||
| [01] [04] [06][07][[08]] [13][14] [18]
|
||||
| [02][03] [09] [16][17]
|
||||
|
|
||||
| above and below images are centered around the current
|
||||
| image as axis, the rule is that the strips left are coming
|
||||
| from the left of the axis and likewise for the right side.
|
||||
|
|
||||
[X] 100% stage II: scroll ribbons correctly
|
||||
| this is simple:
|
||||
| - center the right edge of image returned
|
||||
| by getImageBefore in all ribbons other than current...
|
||||
| - center current-image in current ribbon
|
||||
| - vertically center the current ribbon (negative margin?)
|
||||
[X] prototype and basic API
|
||||
[X] 100% migrate main code to the new system
|
||||
[X] basic navigation
|
||||
[X] basic actions
|
||||
[X] zooming
|
||||
[X] position other ribbons...
|
||||
| only prev/next for now...
|
||||
[X] 100% correct zooming and modes
|
||||
[X] zooming in ribbon view
|
||||
[X] 100% zoom presets for ribbon view
|
||||
| other possible presets:
|
||||
| - five
|
||||
| - all
|
||||
| - group
|
||||
| - day/month
|
||||
| - shoot
|
||||
| - tag
|
||||
| ...
|
||||
[X] three
|
||||
[X] one (with zooming)
|
||||
[X] single image mode with zooming
|
||||
| ribbons are hidden
|
||||
[X] 100% fix layout and animations
|
||||
[X] zooming
|
||||
[X] navigation
|
||||
[X] 100% actions
|
||||
[X] bug: shifting up to new ribbon pushes the current row down...
|
||||
| before starting on a fix, need to cleanup the code from old hacks and workarounds...
|
||||
[_] 39% Preview II (optional features)
|
||||
[_] undo last action (action log)
|
||||
[_] mark positions and jump between marks (a-la vim's "m"/"'" commands)
|
||||
[_] 14% make things modular and reusable (independent widget)
|
||||
[X] make the keyboard handler local to selector (mode-aware)
|
||||
[_] prefix an ID to all selectors to make their actions "local"
|
||||
[_] avoid use of id html attr
|
||||
[_] avoid use of globals
|
||||
| ImageGrid.XXX is a primery target...
|
||||
[_] split as much of the work into events as possible
|
||||
| one example is the stuff that's done on $('.current.image').click(),
|
||||
| thinks like aligning ribbons, centering, etc.
|
||||
[_] make sets of actions for combination via $.update(...)
|
||||
| make things modular...
|
||||
[_] organize things into "features"
|
||||
| this will enable reuse as simple as combining only the desired
|
||||
| features into a final entity...
|
||||
[_] handle edit events to update the internal state state -- sync with DOM (???)
|
||||
| this is needed only for keeping the state in order...
|
||||
|
|
||||
| NOTE: this is not that important as buildJSON(...)
|
||||
| already does the job correctly...
|
||||
[_] try a coffee-script version
|
||||
[_] 0% PhoneGap + Android Issues:
|
||||
[_] scrolling in overlays does not work
|
||||
[_] half the keyboard is not working...
|
||||
[_] screen buttons are very laggy
|
||||
| while swipe works super fast...
|
||||
[_] .dblclick(...) does not work...
|
||||
[_] .dragable(...) does not work...
|
||||
[_] slideshow...
|
||||
| this is needed to disable navigation keys in setup-mode, for example...
|
||||
[X] 100% serialization/deserialization
|
||||
[X] JSON loader/unloader
|
||||
[X] file reader/writer
|
||||
[X] flip ribbons relative to current -- reverse order
|
||||
[_] fade transition in single image mode...
|
||||
[_] "show all promoted/demoted images" mode
|
||||
| display images below or above but in a more transparent
|
||||
| fashion...
|
||||
|
|
||||
| XXX should they be skipped on navigation?
|
||||
[_] 80% drag/move action...
|
||||
[X] basic infrastructure
|
||||
[X] action: center current image
|
||||
[X] while zoomed more than the screen
|
||||
[X] while zoomed out (ribbon view)
|
||||
[_] 0% cleanup...
|
||||
[_] disable click events while dragging
|
||||
[_] differentiate with gestures
|
||||
| might be nice to add a Ps-like "space-dragging"
|
||||
| feature to differentiate nav gestures and
|
||||
| dragging...
|
||||
| ...this may not work for tablets
|
||||
|
|
||||
| for tablets might be good to add a small timeout to
|
||||
| both gestures and dragging, small enough for things
|
||||
| to feel natural...
|
||||
|
|
||||
| another way is to start dragging anyway but if the
|
||||
| eventual action resembles a gesture then exec that.
|
||||
| ...this will need careful setup of timeouts and
|
||||
| dynamic disabling/enabling of both drag and gestures
|
||||
| e.g. of large zooms dragging takes priority.
|
||||
[_] 50% return to current image / home (after drag)
|
||||
[_] button
|
||||
[X] keyboard
|
||||
[X] double tap/click to zoom (a-la iPad)
|
||||
| ribbon <-> single image mode
|
||||
|
|
||||
| XXX does not work in android...
|
||||
[_] pinch to zoom
|
||||
[X] BUG: rendering error when current ribbon images opacity is 1...
|
||||
| This happens when:
|
||||
| - opcity of .current.ribbon .image is 1
|
||||
| - there is atleast a ribbon above
|
||||
| - the view is zoomed-out a bit ~70%
|
||||
|
|
||||
| the view is partially re-rendered when navigating images...
|
||||
|
|
||||
| since this is a browser render error, think of a way to work
|
||||
| around this.
|
||||
|
|
||||
| WORKAROUND: set the opacity to 0.9999 instead of 1 forces the
|
||||
| browser to re-render the whole set correctly. need to find a
|
||||
| better way...
|
||||
[X] 100% add sort/re-sort capability...
|
||||
[X] abstract out image id
|
||||
[X] replace id (use something else like filename)
|
||||
[X] re-arrange ribbons (reverse)
|
||||
[X] in-place sort images in ribbons
|
||||
[_] 50% option to disable processor intensive features
|
||||
[X] global transitions
|
||||
[_] global opacity -- do a layout without opacity
|
||||
[X] 100% refactoring (low priority)
|
||||
[X] cleanup legacy workarounds
|
||||
[X] ui.js, gallery-prototype.js either merge or revise split logic
|
||||
[_] make scrolling of other ribbons proportional to the gap...
|
||||
[_] 3% Preview III
|
||||
[_] use Caps Lock for edit mode...
|
||||
[_] infinite ribbons - dynamic structure construction and partial state
|
||||
| one way to do this is by:
|
||||
| - limiting the number of images per field
|
||||
| - adding new images to new fields to the left and right of current
|
||||
[_] 0% state
|
||||
[_] 0% save state
|
||||
[_] named manual
|
||||
[_] CouchDB
|
||||
[_] 0% export state
|
||||
[_] JSON file
|
||||
[_] directory tree
|
||||
[_] XMP
|
||||
[_] 0% load state
|
||||
[_] named manual
|
||||
[_] 25% directory browser
|
||||
[_] browser mode/ui
|
||||
[_] 50% import directory
|
||||
[_] build/rebuild cache
|
||||
[X] create JSON from cache
|
||||
[_] collection management
|
||||
[_] archive management
|
||||
[_] 0% native client
|
||||
[_] android
|
||||
[_] restrict layout to horizontal
|
||||
| leave doing a different vertical layout for later versions...
|
||||
[_] windows
|
||||
[_] MacOS (low priority)
|
||||
[_] iOS (low priority)
|
||||
[_] 0% unified build system
|
||||
[_] 0% bugs:
|
||||
[_] adding a new ribbon above the current is still jumpy...
|
||||
[_] 0% Preview III (optional features)
|
||||
[_] 0% Pre-Alpha
|
||||
[_] 0% finalize UI logic
|
||||
[_] unsorted images
|
||||
[_] 0% Alpha
|
||||
[_] 0% Beta
|
||||
[_] 0% 1.0
|
||||
|
||||
|
||||
[_] 38% Main workflow
|
||||
[_] 33% image viewing
|
||||
[X] viewer
|
||||
[_] select source
|
||||
[_] slideshow
|
||||
[X] 100% image sorting
|
||||
[X] ribbon navigation
|
||||
[X] shift image between ribbons
|
||||
[X] 100% basic large scale operations
|
||||
[X] sort all images
|
||||
[X] reverse all images
|
||||
[X] reverse ribbons
|
||||
[_] 0% metadata
|
||||
[_] tag filtering
|
||||
[_] tag editing
|
||||
[_] EXIF/IPTC
|
||||
[_] 20% image/export export
|
||||
[X] JSON
|
||||
[_] XMP metadata
|
||||
[_] fav dirs
|
||||
[_] file list
|
||||
[_] image set
|
||||
|
||||
|
||||
|
||||
Goals:
|
||||
main ribbon always consistent
|
||||
fast sorting via several simple passes
|
||||
binary
|
||||
| items are split into two ribbons.
|
||||
|
|
||||
| this can be done either by mandatorily shifting either up or
|
||||
| down or by restricting shifting to just one direction.
|
||||
|
|
||||
| this is a bit too restrictive.
|
||||
|
|
||||
| essentially this is a combination in the ternary approach
|
||||
| below as we can still shift images between levels.
|
||||
ternary
|
||||
| current ribbon and items are either sifted up, shifted down
|
||||
| relative to it or left on, unshifted.
|
||||
|
|
||||
| main ribbon consistency is not always obvious, especially on
|
||||
| partially sorted sets. e.g. while sorting part of the set where
|
||||
| should the unsorted part be?
|
||||
|
|
||||
| sorted section
|
||||
| +-------------------+
|
||||
|
|
||||
| oooooooooooooooooooooooooooooooo
|
||||
| - oooooooooooooooooooooooooooo
|
||||
| > oooooooooooooooooooooxxxxxxxxxxxxxxxxxxxxxxxxxxx... <
|
||||
| + oooooooooooooooo
|
||||
| oooo
|
||||
|
|
||||
| +----------------------------+
|
||||
| which level should this go to?
|
||||
|
|
||||
| in the illustration, the ribbon marked by ">" and "<" is where
|
||||
| the sorting started.
|
||||
|
|
||||
| there is also a question of how do we define the border between
|
||||
| sorted and unsorted zones and when?
|
||||
| ...after the sort is done, and when is that?
|
||||
|
|
||||
| possible ways to go around this:
|
||||
| before sorting select the working batch
|
||||
| - adds an extra step
|
||||
| - restricts later sorting
|
||||
| restrict promotion over the main ribbon
|
||||
| + sorting can be refined later in the same mode
|
||||
| - prevents the user to select the better images on first pass
|
||||
| split the sorted and unsorted batches and never mix them
|
||||
| - restricts later sorting
|
||||
| main ribbon always shows all the better images (from better levels)
|
||||
| o needs a way to move whole topologies up/down relative
|
||||
| to the main ribbon...
|
||||
| one way to do this is select and shift multiple images
|
||||
| will shift the whole pyramid (with all the "worse" images in between)
|
||||
| - introduces modes: sorting / viewing
|
||||
| - adds a separate stage -- move the topology to a correct
|
||||
| main ribbon position
|
||||
|
|
||||
| Q: is this system applicable to sorting search results?
|
||||
| A: likely yes, but the farther one gets from the main ribbon
|
||||
| the more the difference can get between adjacent images.
|
||||
images are always sortable
|
||||
all levels always browsable
|
||||
make all the steps except the actual sorting implicit
|
||||
| i.e. no jumping through hoops for the human...
|
||||
use the same mechanism as used for sorting, for image selection
|
||||
| this can be used for tagging, exhibitions, ...etc.
|
||||
context
|
||||
| a context consists of two things:
|
||||
| - image selection (might be a product of another context, search or selection)
|
||||
| - a way the levels are interpreted within this context
|
||||
|
|
||||
| default contexts:
|
||||
| - full view rating context
|
||||
| this incorporates ALL the archive and the levels are interpreted as ratings.
|
||||
| - selection rating context
|
||||
| same as full view but only part of the archive is rated
|
||||
| XXX this will need to be merged correctly back into the archive...
|
||||
| - selection context
|
||||
| this simply takes one set of images as input and shows a subset as output.
|
||||
|
|
||||
| contexts are persistent, much like a catalogue.
|
||||
|
|
||||
| a context can be cloned and re-used.
|
||||
|
|
||||
| contexts can be used to mark:
|
||||
| - shoots
|
||||
| - subjects
|
||||
| - exhibitions/shows
|
||||
| - portfolios
|
||||
| - ...
|
||||
|
||||
|
||||
[[controls.otl]]
|
||||
|
||||
|
||||
|
||||
[_] 38% features
|
||||
[_] 55% views
|
||||
[_] 60% ribbon-based view
|
||||
[_] show all (very zoomed out view)
|
||||
| might be good to not show any images here at all, just replace them with their average color
|
||||
[X] show map
|
||||
[X] fit to ribbon
|
||||
[X] fit to image (square)
|
||||
[_] ribbon with promoted/demoted images
|
||||
| show semi-transparent images that were demoted/promoted from current ribbon
|
||||
[_] 50% single image view
|
||||
[_] image fit to screen
|
||||
[X] image fit to square
|
||||
| show parts of upper and lower ribbons
|
||||
[X] image zooming
|
||||
| fast zooming to stages:
|
||||
| fit
|
||||
| 100%
|
||||
| 200%
|
||||
| ...
|
||||
[_] basic editing and manipulation
|
||||
| image unchanged, data saved to json...
|
||||
[_] crop
|
||||
[_] rotate
|
||||
|
||||
|
||||
|
||||
[_] 38% General ToDo
|
||||
[_] 80% image sorting
|
||||
[_] will affect:
|
||||
[X] promote
|
||||
[X] demote
|
||||
[X] shift up
|
||||
[X] shift down
|
||||
[_] ribbon merging
|
||||
[_] add promote/demote events (to attach structure editors)...
|
||||
| enable extension and use as a generic widget...
|
||||
[X] add real images...
|
||||
[_] make all the code relative to the current selection (multiple instances on a page support)
|
||||
[X] add ribbon relative scrolling...
|
||||
| each ribbon is positioned relative to the current selected image
|
||||
| below-left: closest image to the left of the current
|
||||
| bolow-right: same as above but right...
|
||||
|
|
||||
| this will demote/promote the image directly up or down...
|
||||
[_] make this into a jquery plugin...
|
||||
[_] add dynamic loading and unloading for very large sets...
|
||||
[X] gesture support...
|
||||
[_] add basic actions:
|
||||
[_] rotate left
|
||||
[_] rotate right
|
||||
[_] crop
|
||||
...
|
||||
[_] add info:
|
||||
[_] number of images in ribbon
|
||||
[_] position in ribbon
|
||||
|
||||
|
||||
|
||||
[_] % ISSUES and BUGS:
|
||||
[_] jumping on focus up/down...
|
||||
[_] demoting a first element (a ribbon is created) positions the field incorrectly (see demoteImage() for details)...
|
||||
|
||||
.
|
||||
| vim:set spell :
|
||||
1330
ui (gen1)/images.js
Executable file
1330
ui (gen1)/images.json
Executable file
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 4.5 KiB |