shinestacker 1.8.1__tar.gz → 1.9.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of shinestacker might be problematic. Click here for more details.

Files changed (173) hide show
  1. {shinestacker-1.8.1 → shinestacker-1.9.1}/CHANGELOG.md +30 -0
  2. {shinestacker-1.8.1/src/shinestacker.egg-info → shinestacker-1.9.1}/PKG-INFO +3 -1
  3. {shinestacker-1.8.1 → shinestacker-1.9.1}/README.md +3 -1
  4. {shinestacker-1.8.1 → shinestacker-1.9.1}/docs/gui.md +13 -13
  5. {shinestacker-1.8.1 → shinestacker-1.9.1}/docs/main.md +2 -1
  6. {shinestacker-1.8.1 → shinestacker-1.9.1}/pyproject.toml +2 -0
  7. shinestacker-1.9.1/src/shinestacker/_version.py +1 -0
  8. shinestacker-1.9.1/src/shinestacker/algorithms/exif.py +546 -0
  9. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/algorithms/multilayer.py +6 -4
  10. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/algorithms/stack.py +26 -14
  11. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/algorithms/stack_framework.py +2 -2
  12. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/algorithms/utils.py +18 -2
  13. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/algorithms/vignetting.py +1 -1
  14. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/app/main.py +1 -1
  15. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/config/constants.py +0 -1
  16. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/action_config_dialog.py +2 -5
  17. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/config_dialog.py +6 -5
  18. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/folder_file_selection.py +3 -2
  19. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/gui_run.py +2 -2
  20. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/new_project.py +5 -5
  21. shinestacker-1.9.1/src/shinestacker/retouch/exif_data.py +75 -0
  22. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/file_loader.py +3 -3
  23. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/image_editor_ui.py +45 -2
  24. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/io_gui_handler.py +13 -15
  25. {shinestacker-1.8.1 → shinestacker-1.9.1/src/shinestacker.egg-info}/PKG-INFO +3 -1
  26. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker.egg-info/SOURCES.txt +0 -1
  27. shinestacker-1.8.1/img/gui-finder.png +0 -0
  28. shinestacker-1.8.1/src/shinestacker/_version.py +0 -1
  29. shinestacker-1.8.1/src/shinestacker/algorithms/exif.py +0 -240
  30. shinestacker-1.8.1/src/shinestacker/retouch/exif_data.py +0 -52
  31. {shinestacker-1.8.1 → shinestacker-1.9.1}/.coveragerc +0 -0
  32. {shinestacker-1.8.1 → shinestacker-1.9.1}/.flake8 +0 -0
  33. {shinestacker-1.8.1 → shinestacker-1.9.1}/.github/workflows/ci-multiplatform.yml +0 -0
  34. {shinestacker-1.8.1 → shinestacker-1.9.1}/.github/workflows/pylint.yml +0 -0
  35. {shinestacker-1.8.1 → shinestacker-1.9.1}/.github/workflows/pypi-publish.yml +0 -0
  36. {shinestacker-1.8.1 → shinestacker-1.9.1}/.github/workflows/release.yml +0 -0
  37. {shinestacker-1.8.1 → shinestacker-1.9.1}/.gitignore +0 -0
  38. {shinestacker-1.8.1 → shinestacker-1.9.1}/.pylintrc +0 -0
  39. {shinestacker-1.8.1 → shinestacker-1.9.1}/.readthedocs.yaml +0 -0
  40. {shinestacker-1.8.1 → shinestacker-1.9.1}/LICENSE +0 -0
  41. {shinestacker-1.8.1 → shinestacker-1.9.1}/MANIFEST.in +0 -0
  42. {shinestacker-1.8.1 → shinestacker-1.9.1}/THIRD_PARTY_LICENSES.txt +0 -0
  43. {shinestacker-1.8.1 → shinestacker-1.9.1}/docs/alignment.md +0 -0
  44. {shinestacker-1.8.1 → shinestacker-1.9.1}/docs/api.md +0 -0
  45. {shinestacker-1.8.1 → shinestacker-1.9.1}/docs/balancing.md +0 -0
  46. {shinestacker-1.8.1 → shinestacker-1.9.1}/docs/conf.py +0 -0
  47. {shinestacker-1.8.1 → shinestacker-1.9.1}/docs/focus_stacking.md +0 -0
  48. {shinestacker-1.8.1 → shinestacker-1.9.1}/docs/index.md +0 -0
  49. {shinestacker-1.8.1 → shinestacker-1.9.1}/docs/job.md +0 -0
  50. {shinestacker-1.8.1 → shinestacker-1.9.1}/docs/macos-install.md +0 -0
  51. {shinestacker-1.8.1 → shinestacker-1.9.1}/docs/multilayer.md +0 -0
  52. {shinestacker-1.8.1 → shinestacker-1.9.1}/docs/noise.md +0 -0
  53. {shinestacker-1.8.1 → shinestacker-1.9.1}/docs/requirements.txt +0 -0
  54. {shinestacker-1.8.1 → shinestacker-1.9.1}/docs/vignetting.md +0 -0
  55. {shinestacker-1.8.1 → shinestacker-1.9.1}/img/coffee.gif +0 -0
  56. {shinestacker-1.8.1 → shinestacker-1.9.1}/img/coffee_stack.jpg +0 -0
  57. {shinestacker-1.8.1 → shinestacker-1.9.1}/img/extreme-vignetting.jpg +0 -0
  58. {shinestacker-1.8.1 → shinestacker-1.9.1}/img/flies.gif +0 -0
  59. {shinestacker-1.8.1 → shinestacker-1.9.1}/img/flies_stack.jpg +0 -0
  60. {shinestacker-1.8.1 → shinestacker-1.9.1}/img/flow-diagram.png +0 -0
  61. {shinestacker-1.8.1 → shinestacker-1.9.1}/img/gui-project-new.png +0 -0
  62. {shinestacker-1.8.1 → shinestacker-1.9.1}/img/gui-project-run.png +0 -0
  63. {shinestacker-1.8.1 → shinestacker-1.9.1}/img/gui-retouch.png +0 -0
  64. {shinestacker-1.8.1 → shinestacker-1.9.1}/index.html +0 -0
  65. {shinestacker-1.8.1 → shinestacker-1.9.1}/requirements.txt +0 -0
  66. {shinestacker-1.8.1 → shinestacker-1.9.1}/scripts/build_release.py +0 -0
  67. {shinestacker-1.8.1 → shinestacker-1.9.1}/scripts/create_macos_icon.py +0 -0
  68. {shinestacker-1.8.1 → shinestacker-1.9.1}/scripts/git-rev-list.sh +0 -0
  69. {shinestacker-1.8.1 → shinestacker-1.9.1}/scripts/hooks/hook-IPython.py +0 -0
  70. {shinestacker-1.8.1 → shinestacker-1.9.1}/scripts/hooks/hook-PySide6.py +0 -0
  71. {shinestacker-1.8.1 → shinestacker-1.9.1}/scripts/hooks/hook-opencv.py +0 -0
  72. {shinestacker-1.8.1 → shinestacker-1.9.1}/scripts/hooks/hook-tests.py +0 -0
  73. {shinestacker-1.8.1 → shinestacker-1.9.1}/scripts/scan_imports.py +0 -0
  74. {shinestacker-1.8.1 → shinestacker-1.9.1}/scripts/shinestacker-inno-setup.iss +0 -0
  75. {shinestacker-1.8.1 → shinestacker-1.9.1}/scripts/validate-tomli.py +0 -0
  76. {shinestacker-1.8.1 → shinestacker-1.9.1}/setup.cfg +0 -0
  77. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/__init__.py +0 -0
  78. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/algorithms/__init__.py +0 -0
  79. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/algorithms/align.py +0 -0
  80. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/algorithms/align_auto.py +0 -0
  81. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/algorithms/align_parallel.py +0 -0
  82. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/algorithms/balance.py +0 -0
  83. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/algorithms/base_stack_algo.py +0 -0
  84. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/algorithms/corrections.py +0 -0
  85. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/algorithms/denoise.py +0 -0
  86. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/algorithms/depth_map.py +0 -0
  87. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/algorithms/noise_detection.py +0 -0
  88. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/algorithms/pyramid.py +0 -0
  89. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/algorithms/pyramid_auto.py +0 -0
  90. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/algorithms/pyramid_tiles.py +0 -0
  91. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/algorithms/sharpen.py +0 -0
  92. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/algorithms/white_balance.py +0 -0
  93. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/app/__init__.py +0 -0
  94. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/app/about_dialog.py +0 -0
  95. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/app/args_parser_opts.py +0 -0
  96. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/app/gui_utils.py +0 -0
  97. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/app/help_menu.py +0 -0
  98. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/app/open_frames.py +0 -0
  99. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/app/project.py +0 -0
  100. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/app/retouch.py +0 -0
  101. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/app/settings_dialog.py +0 -0
  102. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/config/__init__.py +0 -0
  103. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/config/app_config.py +0 -0
  104. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/config/config.py +0 -0
  105. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/config/gui_constants.py +0 -0
  106. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/config/settings.py +0 -0
  107. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/core/__init__.py +0 -0
  108. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/core/colors.py +0 -0
  109. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/core/core_utils.py +0 -0
  110. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/core/exceptions.py +0 -0
  111. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/core/framework.py +0 -0
  112. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/core/logging.py +0 -0
  113. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/__init__.py +0 -0
  114. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/action_config.py +0 -0
  115. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/base_form_dialog.py +0 -0
  116. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/colors.py +0 -0
  117. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/flow_layout.py +0 -0
  118. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/gui_images.py +0 -0
  119. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/gui_logging.py +0 -0
  120. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/ico/shinestacker.icns +0 -0
  121. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/ico/shinestacker.ico +0 -0
  122. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/ico/shinestacker.png +0 -0
  123. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/ico/shinestacker.svg +0 -0
  124. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/img/dark/close-round-line-icon.png +0 -0
  125. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/img/dark/forward-button-icon.png +0 -0
  126. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/img/dark/play-button-round-icon.png +0 -0
  127. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/img/dark/plus-round-line-icon.png +0 -0
  128. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/img/dark/shinestacker_bkg.png +0 -0
  129. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/img/light/close-round-line-icon.png +0 -0
  130. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/img/light/forward-button-icon.png +0 -0
  131. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/img/light/play-button-round-icon.png +0 -0
  132. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/img/light/plus-round-line-icon.png +0 -0
  133. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/img/light/shinestacker_bkg.png +0 -0
  134. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/main_window.py +0 -0
  135. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/menu_manager.py +0 -0
  136. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/project_controller.py +0 -0
  137. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/project_converter.py +0 -0
  138. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/project_editor.py +0 -0
  139. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/project_model.py +0 -0
  140. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/recent_file_manager.py +0 -0
  141. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/select_path_widget.py +0 -0
  142. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/sys_mon.py +0 -0
  143. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/tab_widget.py +0 -0
  144. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/gui/time_progress_bar.py +0 -0
  145. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/__init__.py +0 -0
  146. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/adjustments.py +0 -0
  147. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/base_filter.py +0 -0
  148. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/brush.py +0 -0
  149. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/brush_gradient.py +0 -0
  150. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/brush_preview.py +0 -0
  151. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/brush_tool.py +0 -0
  152. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/denoise_filter.py +0 -0
  153. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/display_manager.py +0 -0
  154. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/filter_manager.py +0 -0
  155. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/icon_container.py +0 -0
  156. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/image_view_status.py +0 -0
  157. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/image_viewer.py +0 -0
  158. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/io_threads.py +0 -0
  159. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/layer_collection.py +0 -0
  160. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/overlaid_view.py +0 -0
  161. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/paint_area_manager.py +0 -0
  162. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/shortcuts_help.py +0 -0
  163. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/sidebyside_view.py +0 -0
  164. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/transformation_manager.py +0 -0
  165. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/undo_manager.py +0 -0
  166. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/unsharp_mask_filter.py +0 -0
  167. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/view_strategy.py +0 -0
  168. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/vignetting_filter.py +0 -0
  169. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker/retouch/white_balance_filter.py +0 -0
  170. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker.egg-info/dependency_links.txt +0 -0
  171. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker.egg-info/entry_points.txt +0 -0
  172. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker.egg-info/requires.txt +0 -0
  173. {shinestacker-1.8.1 → shinestacker-1.9.1}/src/shinestacker.egg-info/top_level.txt +0 -0
@@ -2,6 +2,36 @@
2
2
 
3
3
  This page reports the main releases only and the main changes therein.
4
4
 
5
+ ## [v1.9.1] - 2025-10-23
6
+ ** Improved EXIF data handling GUI refinements **
7
+
8
+ ### Added
9
+ - missing actions "Show EXIF Data" and "Delete EXIF Data"
10
+
11
+ ### Fixed
12
+ - if saving EXIF data fails, a warning is issued instead of stopping the run
13
+ - exif data correctly loaded when opening image file in retouch mode
14
+ - removed duplicated parameter from config dialog (FocusStackBunch)
15
+ - fixed thread warning when the application quits
16
+ - more robust EXIF data code for JPG format prevents possible errors
17
+
18
+ ### Changed
19
+ - improved EXIF GUI: more data displayed and improved selection logic
20
+
21
+ -----
22
+
23
+ ## [v1.9.0] - 2025-10-19
24
+ ** Added PNG format support and fixed EXIF failure **
25
+
26
+ ### Added
27
+ - support of images in PNG format, both in 8 bit and 16 bit depth. Note: EXIF data are not supported for 16 bit PNG because of limitations in the PIL and Open CV python libraries.
28
+
29
+ ### Fixed
30
+ - if saving EXIF data fails, a warning is issued instead of stopping the run
31
+
32
+ -----
33
+
34
+
5
35
  ## [v1.8.1] - 2025-10-16
6
36
  ** Alignment stability and performance improvements **
7
37
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: shinestacker
3
- Version: 1.8.1
3
+ Version: 1.9.1
4
4
  Summary: ShineStacker
5
5
  Author-email: Luca Lista <luka.lista@gmail.com>
6
6
  License-Expression: LGPL-3.0
@@ -105,11 +105,13 @@ Pyramid methods in image processing
105
105
  - **Logo**: The Shine Stacker logo was designed by [Alessandro Lista](https://linktr.ee/alelista). Copyright © Alessandro Lista. All rights reserved. The logo is not covered by the LGPL-3.0 license of this project.
106
106
 
107
107
  ## Attribution request
108
+
108
109
  📸 If you publish images created with Shine Stacker, please consider adding a note such as:
109
110
 
110
111
  *Created with Shine Stacker – https://github.com/lucalista/shinestacker*
111
112
 
112
113
  This is not mandatory, but highly appreciated.
114
+
113
115
  ---
114
116
  > Developed and maintained by [Luca Lista](https://github.com/lucalista).
115
117
  > 💡 Contributions, feedback, and feature suggestions are warmly welcome.
@@ -73,12 +73,14 @@ Pyramid methods in image processing
73
73
  - **Logo**: The Shine Stacker logo was designed by [Alessandro Lista](https://linktr.ee/alelista). Copyright © Alessandro Lista. All rights reserved. The logo is not covered by the LGPL-3.0 license of this project.
74
74
 
75
75
  ## Attribution request
76
+
76
77
  📸 If you publish images created with Shine Stacker, please consider adding a note such as:
77
78
 
78
79
  *Created with Shine Stacker – https://github.com/lucalista/shinestacker*
79
80
 
80
81
  This is not mandatory, but highly appreciated.
82
+
81
83
  ---
82
84
  > Developed and maintained by [Luca Lista](https://github.com/lucalista).
83
85
  > 💡 Contributions, feedback, and feature suggestions are warmly welcome.
84
- > If you enjoy Shine Stacker, consider giving it a ⭐️ on GitHub — it really helps visibility!
86
+ > If you enjoy Shine Stacker, consider giving it a ⭐️ on GitHub — it really helps visibility!
@@ -12,24 +12,28 @@ noisy pixel masking.
12
12
 
13
13
  ## Starting
14
14
 
15
- * If the python package is donwloaded and installed, the GUI can start either from a console command line :
15
+ * The python package can be installed from [PyPI](https://pypi.org/project/shinestacker/) using ```pip```:
16
16
 
17
17
  ```console
18
- > focusstack
18
+ > pip install shinestacker
19
19
  ```
20
+ Onace installed, the GUI app can start either from a console command line :
20
21
 
21
- * If the app is dowloaded from the [releases page](https://github.com/lucalista/focusstack/releases), after the ```zip``` archive is uncompressed, just double-click the app icon.
22
-
23
- <img src='https://raw.githubusercontent.com/lucalista/shinestacker/main/img/gui-finder.png' width="300" referrerpolicy="no-referrer">
22
+ ```console
23
+ > shinestacker
24
+ ```
24
25
 
25
- **Platform Tip**: Windows apps are inside `/focusstack/`, macOS/Linux apps are directly in the uncompressed folder.
26
+ * The app can be dowloaded from the [releases page](https://github.com/lucalista/shinestacker/releases):
27
+ - Windows: as installer or ```zip``` archive for local installation
28
+ - macOS: as ```dmg``` disk image, where the app can be dragged to the Application folder
29
+ - Linux: as ```tar.gz``` archive
26
30
 
27
31
  The GUI has two main working areas:
28
32
 
29
33
  * *Project*
30
34
  * *Retouch*
31
35
 
32
- Switching from *Project* to *Retouch* can be done from the *FocusStack* main menu.
36
+ Switching from *Project* to *Retouch* can be done from the *ShineStacker* main menu.
33
37
 
34
38
  ## Project area
35
39
 
@@ -48,17 +52,13 @@ When the app starts, it proposes to create a new project.
48
52
 
49
53
  > **Large Set Tip**: For 100+ images:
50
54
  > - Split into 10-15 image "bunches"
51
- > - Set frame overlap (default: 2 frames)
55
+ > - Set number of overlapping frame from consecutive bunches
52
56
  > - Combine intermediate results later
53
57
 
54
- > 💡 **RAM Warning**: >15 images of 20Mpx resolution may need 16GB+ RAM. Combine smaller bunches first, if needed, to stack up to hundreds of frames.
55
-
56
58
  The newly created project consists of a single job that contains more actions.
57
59
  Each action produces a folder as output that has, by default, the action's name.
58
60
  Some actions can be combined in order to produce a single intermediate output (alignment, balancing, etc.).
59
61
 
60
- **Action Outputs**: 📁 `aligned-balanced/` | 📁 `bunches/` | 📁 `stacked/`
61
-
62
62
  > **Pro Tip**: Duplicate jobs when processing similar image sets to save configuration time. You can run multiple jobs in sequence.
63
63
 
64
64
  It is possible to run a single job, or all jobs within a project.
@@ -67,7 +67,7 @@ It is possible to run a single job, or all jobs within a project.
67
67
 
68
68
  ### Project Run Tabs
69
69
 
70
- 1. Job progress bar
70
+ 1. Job progress bar with CPU and RAM usage monitor
71
71
  2. Real-time log viewer
72
72
  3. Retouch button (enabled after processing)
73
73
 
@@ -103,5 +103,6 @@ pip install ipywidgets
103
103
 
104
104
  | Issue | Workaround |
105
105
  |----------|----------------|
106
- | PNG and RAW unsupported | Convert to TIFF/JPEG first |
106
+ | RAW format unsupported | Convert to TIFF/JPEG first |
107
+ | EXIF data not supported for 16-bit PNG files | convert to 16-bit TIFF first |
107
108
  | GUI tests limited | Report any bugs as GitHub issuse |
@@ -64,6 +64,8 @@ packages = [
64
64
  "shinestacker.algorithms",
65
65
  "shinestacker.gui",
66
66
  "shinestacker.gui.img",
67
+ "shinestacker.gui.img.dark",
68
+ "shinestacker.gui.img.light",
67
69
  "shinestacker.retouch"
68
70
  ]
69
71
  include-package-data = true
@@ -0,0 +1 @@
1
+ __version__ = '1.9.1'