├── .gitattributes ├── .gitignore ├── CHANGELOG.org ├── LICENSE ├── NOTICE ├── README.org ├── app ├── active-canvas.cpp ├── active-canvas.hh ├── app-context.hh ├── app-getter-util.cpp ├── app-getter-util.hh ├── app.cpp ├── build-info.hh ├── canvas-handle.cpp ├── canvas-handle.hh ├── canvas.hh ├── command-line.cpp ├── command-line.hh ├── context-commands.cpp ├── context-commands.hh ├── context-grid-dialog.cpp ├── context-grid-dialog.hh ├── cut-and-paste.cpp ├── cut-and-paste.hh ├── faint-common-cursors.cpp ├── faint-common-cursors.hh ├── faint-frame-context.cpp ├── faint-frame-context.hh ├── faint-resize-dialog-context.cpp ├── faint-resize-dialog-context.hh ├── faint-slider-cursors.cpp ├── faint-slider-cursors.hh ├── faint-tool-actions.cpp ├── faint-tool-actions.hh ├── faint-window-app-context.cpp ├── faint-window-app-context.hh ├── faint-window-python-context.hh ├── frame-iter.hh ├── frame.cpp ├── frame.hh ├── one-instance.cpp ├── one-instance.hh ├── resource-id.hh ├── save.cpp ├── save.hh ├── template-drawable.hh ├── write-exception-log.cpp └── write-exception-log.hh ├── bitmap ├── aa-line.cpp ├── aa-line.hh ├── alpha-map.cpp ├── alpha-map.hh ├── auto-crop.cpp ├── auto-crop.hh ├── bitmap-exception.hh ├── bitmap-fwd.hh ├── bitmap-templates.hh ├── bitmap.cpp ├── bitmap.hh ├── brush.cpp ├── brush.hh ├── channel.cpp ├── channel.hh ├── color-counting.cpp ├── color-counting.hh ├── color-list.cpp ├── color-list.hh ├── color-ptr.hh ├── color-span.cpp ├── color-span.hh ├── color.cpp ├── color.hh ├── draw.cpp ├── draw.hh ├── filter.cpp ├── filter.hh ├── gaussian-blur-exact.cpp ├── gaussian-blur-fast.cpp ├── gaussian-blur.hh ├── gradient.cpp ├── gradient.hh ├── histogram.cpp ├── histogram.hh ├── iter-bmp.hh ├── mask.cpp ├── mask.hh ├── ordered-color.hh ├── paint-fwd.hh ├── paint.cpp ├── paint.hh ├── pattern.cpp ├── pattern.hh ├── quantize.cpp ├── quantize.hh ├── scale-bicubic.cpp ├── scale-bicubic.hh ├── scale-bilinear.cpp ├── scale-bilinear.hh ├── scale-nearest.cpp ├── scale-nearest.hh └── scale-quality.hh ├── build-sys ├── build_sys │ ├── __init__.py │ ├── build_sys.py │ ├── compile_linux.py │ ├── compile_msw.py │ ├── cpp_writer.py │ ├── dependencies.py │ ├── etags.py │ ├── gen_build_info.py │ ├── gen_help.py │ ├── gen_method_def.py │ ├── gen_nsis.py │ ├── gen_resource.py │ ├── gen_text_expressions.py │ ├── gv.py │ ├── help_util │ │ ├── content_types.py │ │ └── markup_regex.py │ ├── linux │ │ └── gen_makefile.py │ ├── opts.py │ └── util │ │ ├── __init__.py │ │ ├── scoped.py │ │ └── util.py ├── code_utils │ ├── .gitignore │ ├── check_include_guards.py │ ├── check_include_sorting.py │ ├── check_license.py │ ├── core.py │ ├── find_defs.py │ ├── find_fixme.py │ └── list_files.py ├── elisp │ ├── faint-build.el │ ├── faint-help-mode.el │ ├── faint-overlay.el │ ├── faint-paths.el │ ├── faint-templates.el │ ├── test-data │ │ └── help-sample.txt │ └── test-faint-help-mode.el ├── test-dependencies.py ├── test-gen-help.py ├── test-gen-method-def.py └── test-sources │ ├── header1.hh │ ├── header2.hh │ ├── source1.cpp │ └── source2.cpp ├── build ├── .gitignore ├── build-instructions-linux.org ├── build-instructions-visual-studio.org ├── build.py ├── clean.py ├── faint_info.py ├── gencpp.py └── print_dependencies.py ├── commands ├── add-object-cmd.cpp ├── add-object-cmd.hh ├── add-point-cmd.cpp ├── add-point-cmd.hh ├── bitmap-cmd.cpp ├── bitmap-cmd.hh ├── blit-bitmap-cmd.cpp ├── blit-bitmap-cmd.hh ├── calibrate-cmd.cpp ├── calibrate-cmd.hh ├── change-setting-cmd.cpp ├── change-setting-cmd.hh ├── command-bunch.cpp ├── command-bunch.hh ├── command-constants.hh ├── command-ptr.hh ├── command.cpp ├── command.hh ├── delete-object-cmd.cpp ├── delete-object-cmd.hh ├── delete-rect-cmd.cpp ├── delete-rect-cmd.hh ├── draw-object-cmd.cpp ├── draw-object-cmd.hh ├── flip-rotate-cmd.cpp ├── flip-rotate-cmd.hh ├── frame-cmd.cpp ├── frame-cmd.hh ├── function-cmd.cpp ├── function-cmd.hh ├── group-objects-cmd.cpp ├── group-objects-cmd.hh ├── merge-condition.cpp ├── merge-condition.hh ├── move-point-cmd.cpp ├── move-point-cmd.hh ├── obj-function-cmd.hh ├── old-command.cpp ├── old-command.hh ├── order-object-cmd.cpp ├── order-object-cmd.hh ├── put-pixel-cmd.cpp ├── put-pixel-cmd.hh ├── remove-point-cmd.cpp ├── remove-point-cmd.hh ├── rescale-cmd.cpp ├── rescale-cmd.hh ├── resize-cmd.cpp ├── resize-cmd.hh ├── set-bitmap-cmd.cpp ├── set-bitmap-cmd.hh ├── set-object-name-cmd.cpp ├── set-object-name-cmd.hh ├── set-raster-selection-cmd.cpp ├── set-raster-selection-cmd.hh ├── text-entry-cmd.cpp ├── text-entry-cmd.hh ├── tri-cmd.cpp └── tri-cmd.hh ├── doc ├── angle360_ccw.png ├── bicubic_F.png ├── bicubic_R.png ├── bicubic_position.png ├── bicubic_position.svg ├── bitmap-list-ctrl.png ├── brush-edge.png ├── caret-pos-delta.png ├── coding-guide.org ├── drop-down-shifted-top-line.png ├── ellipse_perimeter.png ├── elliptic-arc-area.png ├── faint-lib.org ├── floiled.png ├── frame-mid-point.png ├── fuuuu.png ├── grow.png ├── inflated.png ├── line_angle_cw.png ├── notes.txt ├── placement.png ├── refresh-on-mouse-out.png ├── rotation-adjustment-size.png ├── rotation-blending.png ├── test-tri-a-1.png ├── test-tri-a-2.png ├── test-tri-a-3.png ├── test-tri-a-4.png ├── test-tri-b-1.png ├── test-tri-b-2.png ├── test-tri-b-3.png ├── test-tri-b-4.png ├── test-tri-legend.png ├── text-centering.png ├── text-rendering.txt └── text-typography-terms.png ├── editors ├── line-editor.cpp ├── line-editor.hh ├── text-entry-util.cpp └── text-entry-util.hh ├── ext ├── .gitignore ├── README.org ├── deploy.py ├── faint-py-ext.cpp ├── faint_pyd_paths.py ├── paths.py └── undeploy.py ├── formats ├── bmp │ ├── bmp-errors.cpp │ ├── bmp-errors.hh │ ├── bmp-types.cpp │ ├── bmp-types.hh │ ├── file-bmp.cpp │ ├── file-bmp.hh │ ├── file-cur.hh │ ├── file-ico.cpp │ ├── file-ico.hh │ ├── serialize-bmp-pixel-data.cpp │ ├── serialize-bmp-pixel-data.hh │ └── serialize-bmp-types.hh ├── faint-fopen.cpp ├── faint-fopen.hh ├── file-formats.hh ├── format-bmp.cpp ├── format-cur.cpp ├── format-gif.cpp ├── format-ico.cpp ├── format-png.cpp ├── format-util.cpp ├── format-util.hh ├── format-wx.cpp ├── format.cpp ├── format.hh ├── gif │ ├── file-gif.cpp │ ├── file-gif.hh │ ├── giflib-5.0.5 │ │ ├── AUTHORS │ │ ├── COPYING │ │ ├── README-GIFLIB-FAINT.org │ │ ├── egif_lib.cpp │ │ ├── gif_err.cpp │ │ ├── gif_hash.cpp │ │ ├── gif_hash.h │ │ ├── gif_lib.h │ │ ├── gif_lib_private.h │ │ └── gifalloc.cpp │ ├── write-giflib.cpp │ └── write-giflib.hh ├── png │ ├── file-png.cpp │ ├── file-png.hh │ ├── png-util.hh │ ├── read-libpng.cpp │ ├── read-libpng.hh │ ├── write-libpng.cpp │ └── write-libpng.hh ├── save-result.cpp ├── save-result.hh └── wx │ ├── file-image-wx.cpp │ └── file-image-wx.hh ├── geo ├── adjust.cpp ├── adjust.hh ├── angle.cpp ├── angle.hh ├── arc.cpp ├── arc.hh ├── arrowhead.cpp ├── arrowhead.hh ├── axis.hh ├── bezier.cpp ├── bezier.hh ├── calibration.hh ├── canvas-geo.hh ├── geo-func.cpp ├── geo-func.hh ├── geo-fwd.hh ├── geo-list-points.cpp ├── geo-list-points.hh ├── handle-func.hh ├── int-point.cpp ├── int-point.hh ├── int-range.cpp ├── int-range.hh ├── int-rect.cpp ├── int-rect.hh ├── int-size.cpp ├── int-size.hh ├── limits.hh ├── line.cpp ├── line.hh ├── measure.cpp ├── measure.hh ├── object-handle.cpp ├── object-handle.hh ├── offsat.hh ├── padding.cpp ├── padding.hh ├── pathpt-iter.hh ├── pathpt.cpp ├── pathpt.hh ├── pixel-snap.cpp ├── pixel-snap.hh ├── point-range.hh ├── point.cpp ├── point.hh ├── points.cpp ├── points.hh ├── primitive.cpp ├── primitive.hh ├── radii.cpp ├── radii.hh ├── range.cpp ├── range.hh ├── rect.cpp ├── rect.hh ├── rotated-size.cpp ├── rotated-size.hh ├── scale.cpp ├── scale.hh ├── size.cpp ├── size.hh ├── tri.cpp ├── tri.hh └── typed-range.hh ├── graphics ├── add-frame.png ├── alpha-blending.png ├── brush-circle.png ├── brush-experimental.png ├── brush-rect.png ├── choice-opaque.png ├── choice-transparent.png ├── close-frame-highlight.png ├── close-frame.png ├── cursor-add-point.cur ├── cursor-brush-out.cur ├── cursor-brush.cur ├── cursor-bucket-boundary.cur ├── cursor-bucket-replace-other.cur ├── cursor-bucket-replace.cur ├── cursor-bucket.cur ├── cursor-calibrate-crosshair.cur ├── cursor-clone.cur ├── cursor-control-point-1.cur ├── cursor-control-point-2.cur ├── cursor-crosshair.cur ├── cursor-curve.cur ├── cursor-drag-copy-frame.cur ├── cursor-drag-frame.cur ├── cursor-drag-scale.cur ├── cursor-horizontal-slider.cur ├── cursor-hot-spot.cur ├── cursor-level-define.cur ├── cursor-level-scale.cur ├── cursor-level.cur ├── cursor-move-point.cur ├── cursor-move-selection.cur ├── cursor-move.cur ├── cursor-pen.cur ├── cursor-picker-pattern-topleft.cur ├── cursor-picker-pattern.cur ├── cursor-picker.cur ├── cursor-rotate.cur ├── cursor-square-cross.cur ├── cursor-text-cross.cur ├── cursor-vertical-slider.cur ├── edit-points.png ├── faint-icon.ico ├── faint.rc ├── fillstyle-border-and-fill.png ├── fillstyle-border.png ├── fillstyle-fill.png ├── grid-off.png ├── grid-on.png ├── help-back.png ├── help-forward.png ├── icon-faint-python16.png ├── icon-faint-python32.png ├── icon-faint16.png ├── icon-faint32.png ├── icon-help16.png ├── icon-help32.png ├── layer-object.png ├── layer-raster.png ├── line-arrow-front.png ├── line-no-arrow.png ├── line-polyline.png ├── linestyle-long-dash.png ├── linestyle-solid.png ├── path-closed.png ├── pointtype-curve.png ├── pointtype-line.png ├── resizedlg-placement.png ├── resizedlg-scale.png ├── rotate-dialog-flip-horizontal.png ├── rotate-dialog-flip-vertical.png ├── rotate-dialog-rotate-next.png ├── rotate-dialog-rotate.png ├── tape-measure-line.png ├── tape-measure-triangle.png ├── text-align-center.png ├── text-align-left.png ├── text-align-right.png ├── text-bounded.png ├── text-parsing.png ├── tool-brush.png ├── tool-calibrate.png ├── tool-ellipse.png ├── tool-floodfill.png ├── tool-hot-spot.png ├── tool-level.png ├── tool-line.png ├── tool-path.png ├── tool-pen.png ├── tool-picker.png ├── tool-polygon.png ├── tool-rectangle.png ├── tool-selection.png ├── tool-spline.png ├── tool-tape-measure.png └── tool-text.png ├── gui ├── accelerator-entry.cpp ├── accelerator-entry.hh ├── art.cpp ├── art.hh ├── bitmap-data-object.cpp ├── bitmap-data-object.hh ├── bitmap-list-ctrl.cpp ├── bitmap-list-ctrl.hh ├── canvas-change-event.cpp ├── canvas-change-event.hh ├── canvas-panel-contexts.cpp ├── canvas-panel-contexts.hh ├── canvas-panel.cpp ├── canvas-panel.hh ├── canvas-state.hh ├── color-data-object.cpp ├── color-data-object.hh ├── color-panel.cpp ├── color-panel.hh ├── command-dialog.hh ├── command-window.hh ├── common-cursors.hh ├── dialog-context.cpp ├── dialog-context.hh ├── dialogs.hh ├── dialogs │ ├── alpha-dialog.cpp │ ├── brightness-contrast-dialog.cpp │ ├── color-balance-dialog.cpp │ ├── faint-about-dialog.cpp │ ├── pinch-whirl-dialog.cpp │ ├── pixelize-dialog.cpp │ ├── resize-dialog-options.cpp │ ├── resize-dialog-options.hh │ ├── resize-dialog.cpp │ ├── resize-dialog.hh │ ├── rotate-dialog.cpp │ ├── sharpness-dialog.cpp │ └── threshold-dialog.cpp ├── drag-value-ctrl.cpp ├── drag-value-ctrl.hh ├── drop-down-ctrl.cpp ├── drop-down-ctrl.hh ├── drop-source.cpp ├── drop-source.hh ├── dual-slider.cpp ├── dual-slider.hh ├── entry-mode.hh ├── events.cpp ├── events.hh ├── faint-window.cpp ├── faint-window.hh ├── font-ctrl.cpp ├── font-ctrl.hh ├── frame-context.hh ├── frame-ctrl.cpp ├── frame-ctrl.hh ├── freezer.hh ├── grid-ctrl.cpp ├── grid-ctrl.hh ├── grid-dialog.cpp ├── grid-dialog.hh ├── gui-string-types.hh ├── help-frame.cpp ├── help-frame.hh ├── html-bind-tag.cpp ├── image-toggle-ctrl.cpp ├── image-toggle-ctrl.hh ├── interpreter-ctrl.cpp ├── interpreter-ctrl.hh ├── interpreter-frame.cpp ├── interpreter-frame.hh ├── math-text-ctrl.cpp ├── math-text-ctrl.hh ├── menu-bar.cpp ├── menu-bar.hh ├── menu-predicate.cpp ├── menu-predicate.hh ├── mouse-capture.cpp ├── mouse-capture.hh ├── object-data-object.cpp ├── object-data-object.hh ├── paint-dialog.cpp ├── paint-dialog.hh ├── paint-dialog │ ├── gradient-panel.cpp │ ├── gradient-panel.hh │ ├── gradient-slider.cpp │ ├── gradient-slider.hh │ ├── hsl-panel.cpp │ ├── hsl-panel.hh │ ├── linear-gradient-display.cpp │ ├── linear-gradient-display.hh │ ├── pattern-panel.cpp │ ├── pattern-panel.hh │ ├── radial-gradient-display.cpp │ └── radial-gradient-display.hh ├── palette-ctrl.cpp ├── palette-ctrl.hh ├── selected-color-ctrl.cpp ├── selected-color-ctrl.hh ├── setting-events.cpp ├── setting-events.hh ├── slider-alpha-background.cpp ├── slider-alpha-background.hh ├── slider-common.cpp ├── slider-common.hh ├── slider-histogram-background.cpp ├── slider-histogram-background.hh ├── slider.cpp ├── slider.hh ├── spin-button.cpp ├── spin-button.hh ├── spin-ctrl.cpp ├── spin-ctrl.hh ├── static-bitmap.cpp ├── static-bitmap.hh ├── status-button.cpp ├── status-button.hh ├── tab-ctrl.cpp ├── tab-ctrl.hh ├── tool-bar.cpp ├── tool-bar.hh ├── tool-drop-down-button.cpp ├── tool-drop-down-button.hh ├── tool-panel.cpp ├── tool-panel.hh ├── tool-setting-ctrl.cpp ├── tool-setting-ctrl.hh ├── tool-setting-panel.cpp ├── tool-setting-panel.hh ├── transparency-style.cpp ├── transparency-style.hh ├── ui-constants.hh ├── with-label.hh ├── zoom-ctrl.cpp └── zoom-ctrl.hh ├── help ├── .gitignore ├── example_py │ ├── py_canvas_example.py │ ├── py_frame_example.py │ ├── python_bind_keys.notpy │ ├── python_bind_keys_bindc.py │ ├── python_bind_keys_bindk.py │ ├── python_bind_keys_lambda.py │ ├── python_bind_keys_wrapper.py │ ├── python_bitmap.py │ ├── python_custom_format.py │ ├── scripting_intro_bind.py │ └── scripting_intro_squares.py ├── images │ ├── arc-example.png │ ├── brush-size.png │ ├── calibrated-area-done.png │ ├── calibrated-area-edited.png │ ├── calibrated-area-name.png │ ├── color-0-alpha.png │ ├── color-128-alpha.png │ ├── color-255-alpha.png │ ├── color-draw-with-gradient.png │ ├── color-draw-with-pattern.png │ ├── color-gradient-icon.png │ ├── color-options.png │ ├── color-palette.png │ ├── color-pattern-icon.png │ ├── color-selective-resaturation.png │ ├── constrain.png │ ├── dwim-delete1.png │ ├── dwim-delete2.png │ ├── dwim-delete3.png │ ├── dwim-delete4.png │ ├── dwim-resize1.png │ ├── dwim-resize2.png │ ├── dwim-resize3.png │ ├── dwim-resize4.png │ ├── edit-points-enabled-cutout.png │ ├── editable-arc.png │ ├── editable-polygon.png │ ├── faint-icon.png │ ├── feat-90-snap-1.png │ ├── feat-90-snap-2.png │ ├── feat-90-snap-3.png │ ├── feat-90-snap-4.png │ ├── feat-90-snap-polygon-post.png │ ├── feat-90-snap-polygon-pre.png │ ├── feat-90-snap-post.png │ ├── feat-90-snap-pre.png │ ├── feat-autocrop-post.png │ ├── feat-autocrop-pre.png │ ├── feat-become-path-ellipse1.png │ ├── feat-become-path-ellipse2.png │ ├── feat-become-path-ellipse3.png │ ├── feat-become-path-text.png │ ├── feat-brightness-contrast1.jpg │ ├── feat-brightness-contrast2.jpg │ ├── feat-crop-objects-post.png │ ├── feat-crop-objects-pre.png │ ├── feat-crop-raster-post.png │ ├── feat-crop-raster-pre.png │ ├── feat-delete-objects-post.png │ ├── feat-delete-objects-pre.png │ ├── feat-delete-raster-post.png │ ├── feat-delete-raster-pre.png │ ├── feat-delete-raster-yellow-bg.png │ ├── feat-desaturate-color.jpg │ ├── feat-desaturate-unweighted.jpg │ ├── feat-desaturate-weighted.jpg │ ├── feat-dwim-auto-crop-1.png │ ├── feat-dwim-auto-crop-2.png │ ├── feat-dwim-auto-crop-3.png │ ├── feat-dwim-rotate-1.png │ ├── feat-dwim-rotate-2.png │ ├── feat-dwim-rotate-3.png │ ├── feat-dwim-rotate.png │ ├── feat-erase-but-color1.png │ ├── feat-erase-but-color2.png │ ├── feat-flatten1.png │ ├── feat-flatten2.png │ ├── feat-flatten3.png │ ├── feat-grid.png │ ├── feat-icon-dialog.png │ ├── feat-icon-object.png │ ├── feat-icon-raster-and-object.png │ ├── feat-icon-raster.png │ ├── feat-icon-scriptable.png │ ├── feat-icon-tool.png │ ├── feat-invert-cat1.png │ ├── feat-invert-cat2.png │ ├── feat-invert.jpg │ ├── feat-pixelize1.png │ ├── feat-pixelize2.png │ ├── feat-quantized.png │ ├── feat-replace-alpha-magenta.png │ ├── feat-replace-alpha-pre.png │ ├── feat-replace-alpha-red.png │ ├── feat-replace-alpha-white.png │ ├── feat-resize-object-aligned.png │ ├── feat-resize-object-box.png │ ├── feat-resize-object-skew1.png │ ├── feat-resize-object-skew2.png │ ├── feat-resize-object1.png │ ├── feat-resize-object2.png │ ├── feat-resize-object3.png │ ├── feat-shrink-selection-post.png │ ├── feat-shrink-selection-pre.png │ ├── feat-skew.png │ ├── feat-snap-object-points.png │ ├── feat-threshold-pattern.png │ ├── feat-threshold1.png │ ├── feat-threshold2.png │ ├── feat-transparent-raster-object-bg-1.png │ ├── feat-transparent-raster-object-bg-2.png │ ├── feat-transparent-raster-object-bg-color.png │ ├── feat-transparent-raster-object-bg-quick.png │ ├── feat-transparent-selection-bg-1.png │ ├── feat-transparent-selection-bg-2.png │ ├── feat-transparent-selection-bg-3.png │ ├── feat-transparent-selection-bg-4.png │ ├── feat-transparent-selection-bg-overview.png │ ├── fmt-alpha.png │ ├── fmt-animation.png │ ├── fmt-flatten.png │ ├── fmt-limited-size.png │ ├── fmt-lossless.png │ ├── fmt-lossy.png │ ├── fmt-multi-image.png │ ├── fmt-no-alpha.png │ ├── fmt-palette.png │ ├── fmt-vector.png │ ├── fontface.png │ ├── fontsize.png │ ├── gravel1.jpg │ ├── gravel2.jpg │ ├── gui-brightness-contrast-dialog.png │ ├── gui-color-selection-dialog-gradient.png │ ├── gui-color-selection-dialog-hsl.png │ ├── gui-color-selection-dialog-pattern.png │ ├── gui-frame-control.png │ ├── gui-grid-control-disabled.png │ ├── gui-grid-control-drag.png │ ├── gui-grid-control-enabled.png │ ├── gui-grid-dialog.png │ ├── gui-hot-spot.png │ ├── gui-image-resize-handles.png │ ├── gui-overview.map │ ├── gui-overview.png │ ├── gui-resize-dialog-image.png │ ├── gui-resize-dialog-objects.png │ ├── gui-rotate-dialog1.png │ ├── gui-rotate-dialog2.png │ ├── gui-selected-color-selection-bg.png │ ├── gui-selected-color-selection-both.png │ ├── gui-selected-color-selection-fg.png │ ├── gui-selected-color-selection-none.png │ ├── gui-status-info1.png │ ├── gui-status-info2.png │ ├── gui-tab-asterisk.png │ ├── gui-tab-drag1.png │ ├── gui-tab-drag2.png │ ├── gui-tab-split.png │ ├── gui-threshold-dialog.png │ ├── gui-tool-panel-annotated.map │ ├── gui-tool-panel-annotated.png │ ├── gui-zoom-control-fit.png │ ├── gui-zoom-control-zoomed-out.png │ ├── gui-zoom-control.png │ ├── icon-extref.png │ ├── icon-info.png │ ├── icon-warn.png │ ├── icon-work-in-progress.png │ ├── img-annotations.jpg │ ├── img-layer-selection.png │ ├── key-alt.png │ ├── key-ctrl-mouse-right.png │ ├── key-ctrl.png │ ├── key-delete.png │ ├── key-shift.png │ ├── layer-raster.png │ ├── layer-vector.png │ ├── linewidth.png │ ├── mouse-left-double.png │ ├── mouse-left.png │ ├── mouse-right.png │ ├── msw-cmd-line.png │ ├── na.png │ ├── object-name.png │ ├── object-selection-cutout.png │ ├── object-settings.png │ ├── objselectsettings.png │ ├── picker-example.png │ ├── py-detached-copy.png │ ├── py-modifies-state.png │ ├── python-console.png │ ├── python-script-output.png │ ├── raster-graphics-example.png │ ├── raster-selection-cutout.png │ ├── raster-selection-example.png │ ├── select-objects.png │ ├── select-vector.png │ ├── selected-color-control.png │ ├── setting-bg.png │ ├── setting-fg.png │ ├── supports-object.png │ ├── supports-raster.png │ ├── symbol-alpha.png │ ├── symbol-angle.png │ ├── symbol-beta.png │ ├── symbol-deg.png │ ├── symbol-delta.png │ ├── symbol-dog.png │ ├── symbol-dprime.png │ ├── symbol-ellipsis.png │ ├── symbol-ge.png │ ├── symbol-in.png │ ├── symbol-inf.png │ ├── symbol-interrobang.png │ ├── symbol-larr.png │ ├── symbol-le.png │ ├── symbol-li.png │ ├── symbol-lrarr.png │ ├── symbol-ne.png │ ├── symbol-notparallel.png │ ├── symbol-parallel.png │ ├── symbol-perfect.png │ ├── symbol-pi.png │ ├── symbol-poop.png │ ├── symbol-prime.png │ ├── symbol-rarr.png │ ├── symbol-scissors.png │ ├── symbol-sq.png │ ├── symbol-sqrt.png │ ├── symbol-times.png │ ├── symbol-tm.png │ ├── symbol-tprime.png │ ├── symbol-whoa.png │ ├── tape-measure-drop-down.png │ ├── tape-measure-mm.png │ ├── text-delta.png │ ├── text-expression-done.png │ ├── text-expression-editing.png │ ├── tool-brush-example.png │ ├── tool-calibrate-example.png │ ├── tool-calibrate-idle.png │ ├── tool-fill-boundary.png │ ├── tool-fill-flood.png │ ├── tool-fill-replace-other.png │ ├── tool-fill-unchanged.png │ ├── tool-level-1.png │ ├── tool-level-2.png │ ├── tool-pen-example.png │ ├── transparent-bg-cutout.png │ ├── tri-skew.png │ ├── tri.png │ ├── vector-graphics-example.png │ └── vector-selection-example.png ├── source-images │ ├── cut-out.png │ ├── gui-overview.svg │ └── gui-tool-panel-annotated.svg └── source │ ├── attributions.txt │ ├── binds.txt │ ├── color.txt │ ├── contents.txt │ ├── dialogs.txt │ ├── feat-become-path.txt │ ├── feat-blur.txt │ ├── feat-boundary-fill.txt │ ├── feat-brightness-contrast.txt │ ├── feat-calibration.txt │ ├── feat-color-balance.txt │ ├── feat-config-file.txt │ ├── feat-constrain.txt │ ├── feat-crop.txt │ ├── feat-delete.txt │ ├── feat-desaturate.txt │ ├── feat-dwim-auto-crop.txt │ ├── feat-dwim-delete.txt │ ├── feat-dwim-resize.txt │ ├── feat-dwim-rotate.txt │ ├── feat-dwim.txt │ ├── feat-erase-but-color.txt │ ├── feat-flatten.txt │ ├── feat-flood-fill.txt │ ├── feat-grid.txt │ ├── feat-invert.txt │ ├── feat-object-selection.txt │ ├── feat-pixelize.txt │ ├── feat-quantize.txt │ ├── feat-raster-selection.txt │ ├── feat-replace-alpha.txt │ ├── feat-replace-color.txt │ ├── feat-resize-objects.txt │ ├── feat-rotate.txt │ ├── feat-sharpen.txt │ ├── feat-shrink-selection.txt │ ├── feat-skew.txt │ ├── feat-snap-points.txt │ ├── feat-snap90.txt │ ├── feat-threshold.txt │ ├── feat-transparent-raster-object-bg.txt │ ├── feat-transparent-selection-bg.txt │ ├── fmt-bmp.txt │ ├── fmt-cur.txt │ ├── fmt-gif.txt │ ├── fmt-ico.txt │ ├── fmt-jpg.txt │ ├── fmt-pdf.txt │ ├── fmt-png.txt │ ├── fmt-svg.txt │ ├── formats.txt │ ├── gui-brightness-contrast-dialog.txt │ ├── gui-color-balance-dialog.txt │ ├── gui-color-panel.txt │ ├── gui-color-selection-dialog.txt │ ├── gui-frame-control.txt │ ├── gui-grid-control.txt │ ├── gui-grid-dialog.txt │ ├── gui-help-window.txt │ ├── gui-image-resize-handles.txt │ ├── gui-open-file-dialog.txt │ ├── gui-python-console.txt │ ├── gui-resize-dialog.txt │ ├── gui-rotate-dialog.txt │ ├── gui-selected-color-control.txt │ ├── gui-sharpness-dialog.txt │ ├── gui-status-bar.txt │ ├── gui-tabs.txt │ ├── gui-threshold-dialog.txt │ ├── gui-tool-panel.txt │ ├── gui-zoom-control.txt │ ├── license.txt │ ├── licenses │ ├── expat-license.txt │ ├── leptonica.txt │ ├── lgpl21.html │ ├── libpng.txt │ ├── wx-windows-license.txt │ └── zlib-license.txt │ ├── main.txt │ ├── objects.txt │ ├── py-app.txt │ ├── py-bitmap.txt │ ├── py-canvas.txt │ ├── py-clipboard.txt │ ├── py-dialogs.txt │ ├── py-frame-props.txt │ ├── py-frame.txt │ ├── py-functions.txt │ ├── py-grid.txt │ ├── py-image-props.txt │ ├── py-interpreter.txt │ ├── py-linear-gradient.txt │ ├── py-pattern.txt │ ├── py-radial-gradient.txt │ ├── py-settings.txt │ ├── py-something.txt │ ├── py-tri.txt │ ├── py-window.txt │ ├── python-bind-keys.txt │ ├── python-custom-format.txt │ ├── raster-vs-object.txt │ ├── ref-command-line.txt │ ├── ref-features.txt │ ├── ref-gui.txt │ ├── ref-menu.txt │ ├── ref-scripting.txt │ ├── ref-text-expressions.txt │ ├── ref-tools.txt │ ├── scripting-intro.txt │ ├── selection.txt │ ├── settings.txt │ ├── tips.txt │ ├── tool-brush.txt │ ├── tool-calibrate.txt │ ├── tool-color-picker.txt │ ├── tool-ellipse.txt │ ├── tool-fill.txt │ ├── tool-hot-spot.txt │ ├── tool-level.txt │ ├── tool-line.txt │ ├── tool-path.txt │ ├── tool-pen.txt │ ├── tool-polygon.txt │ ├── tool-rectangle.txt │ ├── tool-selection.txt │ ├── tool-spline.txt │ ├── tool-tape-measure.txt │ ├── tool-text.txt │ ├── tools.txt │ └── user-interface.txt ├── installer ├── .gitignore ├── installer.ico ├── instsplash.bmp ├── package_python.py └── template.nsi ├── objects ├── objcomposite.cpp ├── objcomposite.hh ├── object-ptr.hh ├── object.cpp ├── object.hh ├── objellipse.cpp ├── objellipse.hh ├── objline.cpp ├── objline.hh ├── objpath.cpp ├── objpath.hh ├── objpolygon.cpp ├── objpolygon.hh ├── objraster.cpp ├── objraster.hh ├── objrectangle.cpp ├── objrectangle.hh ├── objspline.cpp ├── objspline.hh ├── objtext.cpp ├── objtext.hh ├── objtri.cpp ├── objtri.hh ├── standard-object.cpp └── standard-object.hh ├── py ├── core │ ├── default_ini.py │ └── envsetup.py ├── faint │ ├── __init__.py │ ├── anchor.py │ ├── browse_to_file.py │ ├── extra │ │ ├── __init__.py │ │ ├── dot.py │ │ ├── tesseract.py │ │ └── util.py │ ├── formatpdf.py │ ├── formatsvg.py │ ├── formatsvgz.py │ ├── formatutil.py │ ├── image.py │ ├── object_relative.py │ ├── pdf │ │ ├── convert_to_pdf.py │ │ ├── document.py │ │ ├── op.py │ │ ├── parse_pdf.py │ │ ├── stream.py │ │ ├── util.py │ │ ├── write_pdf.py │ │ └── xobject.py │ ├── svg │ │ ├── expat_util.py │ │ ├── ifaint_util.py │ │ ├── parse │ │ │ ├── __init__.py │ │ │ ├── parse_state.py │ │ │ └── parse_util.py │ │ ├── parse_svg.py │ │ ├── svg_re.py │ │ ├── tag.py │ │ ├── util.py │ │ ├── wrapped_etree.py │ │ ├── write │ │ │ ├── __init__.py │ │ │ ├── build_state.py │ │ │ └── create.py │ │ └── write_svg.py │ └── util.py └── test │ ├── .gitignore │ ├── all.py │ ├── faint_scripts │ ├── __init__.py │ ├── log.py │ ├── run-test-color-background.py │ ├── run-test-props.py │ ├── run-test-py-api.py │ ├── test-save-pdf.py │ ├── test-save-suite.py │ ├── test-save-svg-text.py │ ├── test-save-svg.py │ └── test_py_api_impl.py │ ├── mock │ └── ifaint.py │ ├── src │ ├── __init__.py │ ├── config.py │ ├── html_index.py │ └── svg_test_files.py │ ├── test_color_background.py │ ├── test_props.py │ ├── test_py_api.py │ ├── test_save_pdf.py │ ├── test_save_svg.py │ ├── test_save_svg_text.py │ └── test_svg_suite.py ├── python ├── bound-object.cpp ├── bound-object.hh ├── bound.hh ├── generate │ ├── set_and_get.py │ └── templates │ │ ├── function-bool.txt │ │ ├── function-color.txt │ │ ├── function-float.txt │ │ ├── function-int.txt │ │ ├── function-method-def.txt │ │ ├── function-string-to-int.txt │ │ ├── function-string.txt │ │ ├── object-bool.txt │ │ ├── object-color.txt │ │ ├── object-float.txt │ │ ├── object-int.txt │ │ ├── object-property.txt │ │ ├── object-string-to-int.txt │ │ ├── object-string.txt │ │ ├── settings-bool.txt │ │ ├── settings-color.txt │ │ ├── settings-float.txt │ │ ├── settings-int.txt │ │ ├── settings-property.txt │ │ ├── settings-string-to-int.txt │ │ ├── settings-string.txt │ │ ├── shape-bool.txt │ │ ├── shape-color.txt │ │ ├── shape-float.txt │ │ ├── shape-int.txt │ │ ├── shape-property.txt │ │ ├── shape-string-to-int.txt │ │ └── shape-string.txt ├── mapped-type.hh ├── py-active-settings.cpp ├── py-add-type-object.hh ├── py-app.cpp ├── py-bitmap.cpp ├── py-bitmap.hh ├── py-canvas-fwd.hh ├── py-canvas.cpp ├── py-canvas.hh ├── py-clipboard.cpp ├── py-clipboard.hh ├── py-color.cpp ├── py-color.hh ├── py-common.hh ├── py-dialog-functions.cpp ├── py-exception-types.cpp ├── py-exception-types.hh ├── py-exception.cpp ├── py-exception.hh ├── py-faint-singletons.hh ├── py-format.cpp ├── py-format.hh ├── py-frame-props.cpp ├── py-frame.cpp ├── py-frame.hh ├── py-func-context.hh ├── py-function-error.cpp ├── py-function-error.hh ├── py-functions.cpp ├── py-functions.hh ├── py-fwd.hh ├── py-global-functions.cpp ├── py-gradient.hh ├── py-grid.cpp ├── py-grid.hh ├── py-image-props.cpp ├── py-image-props.hh ├── py-image.cpp ├── py-image.hh ├── py-include.cpp ├── py-include.hh ├── py-initialize-ifaint.cpp ├── py-initialize-ifaint.hh ├── py-interface.cpp ├── py-interface.hh ├── py-interpreter.cpp ├── py-key-press.cpp ├── py-key-press.hh ├── py-less-common.hh ├── py-linear-gradient.cpp ├── py-object-geo.cpp ├── py-object-geo.hh ├── py-object-proxy.cpp ├── py-object-proxy.hh ├── py-palette.cpp ├── py-parse.cpp ├── py-parse.hh ├── py-pattern.cpp ├── py-pattern.hh ├── py-png.cpp ├── py-png.hh ├── py-radial-gradient.cpp ├── py-settings.cpp ├── py-settings.hh ├── py-shape-properties.hh ├── py-shape.cpp ├── py-shape.hh ├── py-something-properties.hh ├── py-something.cpp ├── py-something.hh ├── py-tri.cpp ├── py-tri.hh ├── py-ugly-forward.hh ├── py-util.cpp ├── py-util.hh ├── py-window.cpp ├── pylint-cfg └── python-context.hh ├── rendering ├── cairo-context.cpp ├── cairo-context.hh ├── cairo-ptr.hh ├── extra-overlay.hh ├── faint-cairo-stride.cpp ├── faint-dc.cpp ├── faint-dc.hh ├── filter-class.hh ├── overlay-dc-wx.cpp ├── overlay-dc-wx.hh ├── overlay.cpp ├── overlay.hh ├── paint-canvas.cpp ├── paint-canvas.hh ├── render-brush.cpp ├── render-brush.hh ├── render-text.cpp ├── render-text.hh ├── text-info-dc.cpp └── text-info-dc.hh ├── tablet ├── msw │ ├── tablet-error-message.cpp │ ├── tablet-error-message.hh │ ├── tablet-error.hh │ ├── tablet-init.cpp │ ├── tablet-init.hh │ └── wintab │ │ ├── pktdef.h │ │ └── wintab.h ├── tablet-event.cpp └── tablet-event.hh ├── tasks ├── calibrate-draw-line.cpp ├── calibrate-enter-measure.cpp ├── calibrate-idle.cpp ├── calibrate-tasks.hh ├── null-task.cpp ├── null-task.hh ├── select-object-idle.cpp ├── select-object-idle.hh ├── select-object-move-point.cpp ├── select-object-move-point.hh ├── select-object-move.cpp ├── select-object-move.hh ├── select-object-rectangle.cpp ├── select-object-rectangle.hh ├── select-object-resize.cpp ├── select-object-resize.hh ├── select-object-rotate.cpp ├── select-object-rotate.hh ├── select-object-set-name.cpp ├── select-object-set-name.hh ├── select-raster-base.cpp ├── select-raster-base.hh ├── select-raster-idle.cpp ├── select-raster-idle.hh ├── select-raster-move.cpp ├── select-raster-move.hh ├── select-raster-rectangle.cpp ├── select-raster-rectangle.hh ├── standard-task.cpp ├── standard-task.hh ├── task.cpp ├── task.hh ├── text-edit.cpp ├── text-edit.hh ├── text-idle.cpp ├── text-idle.hh ├── text-make-box.cpp ├── text-make-box.hh ├── text-select.cpp └── text-select.hh ├── test-sys ├── bench.hh ├── run-bench.hh ├── run-image.hh ├── run-test.hh ├── test-internal.hh ├── test-name.hh ├── test-sys.hh ├── test.hh └── test_sys │ ├── gen_runner.py │ └── gen_util.py ├── tests ├── .gitignore ├── benchmarks │ ├── .gitignore │ ├── bench-boundary-fill.cpp │ ├── bench-color-counting.cpp │ ├── bench-convert-bmp.cpp │ ├── bench-gaussian-blur.cpp │ ├── bench-point-range.cpp │ ├── bench-settings.cpp │ └── main.cpp ├── gui-tests │ ├── add-gui-tests.cpp │ ├── gui-test-alpha-dialog.cpp │ ├── gui-test-bitmap-list-ctrl.cpp │ ├── gui-test-frame-ctrl.cpp │ ├── gui-test-gradient-panel.cpp │ ├── gui-test-gradient-slider.cpp │ ├── gui-test-grid-dialog.cpp │ ├── gui-test-hsl-panel.cpp │ ├── gui-test-image-toggle-ctrl.cpp │ ├── gui-test-palette-ctrl.cpp │ ├── gui-test-pattern-panel.cpp │ ├── gui-test-resize-dialog.cpp │ ├── gui-test-selected-color-ctrl.cpp │ ├── gui-test-slider.cpp │ ├── gui-test-static-bitmap.cpp │ ├── gui-test-with-label.cpp │ ├── main.cpp │ └── stubs.cpp ├── image-tests │ ├── .gitignore │ ├── img-arc.cpp │ ├── img-brightness-contrast.cpp │ ├── img-desaturate.cpp │ ├── img-fill-triangle.cpp │ ├── img-gaussian-blur.cpp │ ├── img-quantize.cpp │ ├── img-render-text-mask.cpp │ ├── img-render-text.cpp │ ├── img-scale-bicubic.cpp │ ├── img-system-colors.cpp │ ├── img-text.cpp │ ├── img-unsharp-mask.cpp │ └── main.cpp ├── py_tests │ ├── __init__.py │ ├── test_extra │ │ ├── test_dot.py │ │ └── test_tesseract.py │ ├── test_faint │ │ ├── paths.py │ │ ├── test_bitmap.py │ │ ├── test_color.py │ │ ├── test_image.py │ │ ├── test_image_props.py │ │ ├── test_linear_gradient.py │ │ ├── test_parse_svg.py │ │ ├── test_pattern.py │ │ ├── test_pdf.py │ │ ├── test_png.py │ │ ├── test_settings.py │ │ ├── test_shape.py │ │ └── test_write_svg.py │ ├── test_pdf │ │ └── test_pdf_document.py │ └── test_svg │ │ ├── test_svg.py │ │ └── test_svg_util.py ├── run_py_tests.py ├── run_svg_suite.py ├── svg_suite │ ├── config.py │ ├── html_index.py │ └── testable_files.py ├── test-data │ ├── 12x6-8bipp.bmp │ ├── 13x7-8bipp-gray.bmp │ ├── 24bipp-256x256.cur │ ├── 24bipp-6x6.cur │ ├── 24bipp-key.png │ ├── 24bipp.ico │ ├── 32-bipp_8-bit-alpha_no-palette-BI_RGB.ico │ ├── 65x65-24bipp-key.png │ ├── 65x65-24bipp.bmp │ ├── 86-68-key-1.png │ ├── 86-68-key-2.png │ ├── 86-68-key-3.png │ ├── 86-68-key-4.png │ ├── 86-68.gif │ ├── alpha-128.png │ ├── bicubic-key.png │ ├── bicubic-source.png │ ├── bilinear-key.png │ ├── boundary-fill-key.png │ ├── boundary-fill-source.hh │ ├── boundary-fill-source.png │ ├── gauss-dithered.png │ ├── gauss-source.png │ ├── gradients.png │ ├── scale-nearest-key.png │ ├── scale-nearest-source.png │ ├── square.png │ ├── svg │ │ ├── group-element.svg │ │ ├── group-transform.svg │ │ ├── image-element.svg │ │ ├── key │ │ │ ├── group-element.png │ │ │ ├── group-transform.png │ │ │ ├── image-element.png │ │ │ ├── percentage.png │ │ │ ├── svg-element-viewbox.png │ │ │ ├── svg-element.png │ │ │ └── text-anchor.png │ │ ├── percentage.svg │ │ ├── svg-element-viewbox.svg │ │ ├── svg-element.svg │ │ └── text-anchor.svg │ └── tesseract-test.png ├── test-util │ ├── bitmap-test-util.cpp │ ├── bitmap-test-util.hh │ ├── file-handling.cpp │ ├── file-handling.hh │ ├── image-table.cpp │ ├── image-table.hh │ ├── pick-random-color.cpp │ ├── pick-random-color.hh │ ├── print-objects.cpp │ ├── print-objects.hh │ ├── print-optional.hh │ ├── stub-command-context.hh │ ├── text-bitmap.cpp │ ├── text-bitmap.hh │ ├── threw-exception.hh │ ├── wx-test-util.cpp │ └── wx-test-util.hh └── unit-tests │ ├── .gitignore │ ├── main.cpp │ ├── test-24bipp-ico.cpp │ ├── test-alpha-map.cpp │ ├── test-angle.cpp │ ├── test-arc-area.cpp │ ├── test-at-most.cpp │ ├── test-auto-complete.cpp │ ├── test-auto-crop.cpp │ ├── test-bezier-distance.cpp │ ├── test-bitmap-blend.cpp │ ├── test-bitmap.cpp │ ├── test-bmp-types.cpp │ ├── test-boundary-fill-image.cpp │ ├── test-boundary-fill.cpp │ ├── test-brush-edge.cpp │ ├── test-brush-overlay.cpp │ ├── test-brush-stroke.cpp │ ├── test-brush-top-left.cpp │ ├── test-canvas-handle.cpp │ ├── test-channel.cpp │ ├── test-clone-as-path.cpp │ ├── test-color-counting.cpp │ ├── test-color.cpp │ ├── test-command-merge.cpp │ ├── test-convert-wx-bmp.cpp │ ├── test-convert-wx.cpp │ ├── test-draw.cpp │ ├── test-either.cpp │ ├── test-enum-util.cpp │ ├── test-faint-dc.cpp │ ├── test-file-bmp.cpp │ ├── test-file-cur.cpp │ ├── test-file-gif.cpp │ ├── test-file-ico.cpp │ ├── test-file-png.cpp │ ├── test-fill-triangle.cpp │ ├── test-formatting.cpp │ ├── test-geo-func.cpp │ ├── test-handle.cpp │ ├── test-index.cpp │ ├── test-int-point.cpp │ ├── test-int-rect.cpp │ ├── test-int-size.cpp │ ├── test-intersect.cpp │ ├── test-iter.cpp │ ├── test-limits.cpp │ ├── test-linear-gradient.cpp │ ├── test-measure.cpp │ ├── test-mouse.cpp │ ├── test-object-handle.cpp │ ├── test-object-util.cpp │ ├── test-objpath-undo.cpp │ ├── test-objpath.cpp │ ├── test-optional.cpp │ ├── test-parse-hex-color.cpp │ ├── test-parse-math-string.cpp │ ├── test-pattern.cpp │ ├── test-point-range.cpp │ ├── test-quantize.cpp │ ├── test-radial-gradient.cpp │ ├── test-range-iter.cpp │ ├── test-rotated-size.cpp │ ├── test-scale-bicubic.cpp │ ├── test-scale-bilinear.cpp │ ├── test-scale-nearest.cpp │ ├── test-serialize-tuple.cpp │ ├── test-settings.cpp │ ├── test-size.cpp │ ├── test-slice.cpp │ ├── test-split-string.cpp │ ├── test-subtype.cpp │ ├── test-text-buffer.cpp │ ├── test-text-entry-util.cpp │ ├── test-text-expression-conversions.cpp │ ├── test-text-expression.cpp │ ├── test-text-geo.cpp │ ├── test-tri-offset-aligned.cpp │ ├── test-tri.cpp │ ├── test-unsharp-mask.cpp │ ├── test-utf8-string.cpp │ └── test-zoom-level.cpp ├── text ├── auto-complete.cpp ├── auto-complete.hh ├── caret.cpp ├── caret.hh ├── char-constants.hh ├── formatting.cpp ├── formatting.hh ├── precision.hh ├── slice-generic.cpp ├── slice-generic.hh ├── slice.cpp ├── slice.hh ├── split-string.cpp ├── split-string.hh ├── string-util.cpp ├── string-util.hh ├── text-buffer.cpp ├── text-buffer.hh ├── text-expression-cmds.cpp ├── text-expression-cmds.hh ├── text-expression-context.hh ├── text-expression-conversions.cpp ├── text-expression-conversions.hh ├── text-expression.cpp ├── text-expression.hh ├── text-geo.cpp ├── text-geo.hh ├── text-line.cpp ├── text-line.hh ├── text-measures.hh ├── utf8-char.cpp ├── utf8-char.hh ├── utf8-string-iterator.cpp ├── utf8-string-iterator.hh ├── utf8-string.cpp ├── utf8-string.hh ├── utf8.cpp └── utf8.hh ├── tools ├── brush-tool.cpp ├── calibrate-tool.cpp ├── ellipse-tool.cpp ├── fill-tool.cpp ├── hot-spot-tool.cpp ├── level-tool.cpp ├── line-tool.cpp ├── multi-tool.cpp ├── multi-tool.hh ├── object-selection-tool.cpp ├── path-tool.cpp ├── pen-tool.cpp ├── picker-tool.cpp ├── polygon-tool.cpp ├── raster-selection-tool.cpp ├── rectangle-tool.cpp ├── refresh-info.hh ├── resize-canvas-tool.cpp ├── resize-canvas-tool.hh ├── selection-tool.cpp ├── spline-tool.cpp ├── standard-tool.cpp ├── standard-tool.hh ├── tape-measure-tool.cpp ├── text-tool.cpp ├── tool-actions.hh ├── tool-contexts.hh ├── tool-id.cpp ├── tool-id.hh ├── tool-wrapper.cpp ├── tool-wrapper.hh ├── tool.cpp └── tool.hh ├── util-wx ├── bind-event.hh ├── clipboard-util.cpp ├── clipboard-util.hh ├── clipboard.cpp ├── clipboard.hh ├── convert-wx.cpp ├── convert-wx.hh ├── encode-bitmap.hh ├── file-auto-complete.cpp ├── file-auto-complete.hh ├── file-format-util.cpp ├── file-format-util.hh ├── file-path-util.cpp ├── file-path-util.hh ├── file-path.cpp ├── file-path.hh ├── font.hh ├── fwd-bind.cpp ├── fwd-bind.hh ├── fwd-dc-wx.hh ├── fwd-wx.cpp ├── fwd-wx.hh ├── gui-util.cpp ├── gui-util.hh ├── key-codes.cpp ├── key-codes.hh ├── layout-wx.cpp ├── layout-wx.hh ├── make-event.hh ├── placement.cpp ├── placement.hh ├── scoped-error-log.cpp ├── scoped-error-log.hh ├── slice-wx.cpp ├── slice-wx.hh ├── stream.cpp ├── stream.hh ├── system-colors.cpp ├── system-colors.hh ├── util-wx.cpp └── window-types-wx.hh ├── util ├── accessor.hh ├── append-command-type.hh ├── apply-target.cpp ├── apply-target.hh ├── at-most.hh ├── bound-setting.cpp ├── bound-setting.hh ├── cleaner.hh ├── color-bitmap-util.cpp ├── color-bitmap-util.hh ├── color-choice.cpp ├── color-choice.hh ├── command-history.cpp ├── command-history.hh ├── command-util.cpp ├── command-util.hh ├── common-fwd.hh ├── container-util.hh ├── convenience.cpp ├── convenience.hh ├── default-constructible.hh ├── default-settings.cpp ├── default-settings.hh ├── delay.hh ├── deserialize-tuple.hh ├── distinct.hh ├── dumb-ptr.hh ├── either.hh ├── enum-util.hh ├── exception.cpp ├── exception.hh ├── frame-props.cpp ├── frame-props.hh ├── generator-adapter.hh ├── grid.cpp ├── grid.hh ├── hit-test.cpp ├── hit-test.hh ├── hot-spot.hh ├── id-types.hh ├── image-info.cpp ├── image-info.hh ├── image-list.cpp ├── image-list.hh ├── image-props.cpp ├── image-props.hh ├── image-util.cpp ├── image-util.hh ├── image.cpp ├── image.hh ├── index-iter.hh ├── index.cpp ├── index.hh ├── iter.hh ├── key-press.cpp ├── key-press.hh ├── make-map.hh ├── make-vector.hh ├── math-constants.hh ├── merge-conditions.cpp ├── merge-conditions.hh ├── mouse.cpp ├── mouse.hh ├── msw_warn.hh ├── named-operator.hh ├── object-util.cpp ├── object-util.hh ├── objects.hh ├── optional.hh ├── or-error.hh ├── paint-map.cpp ├── paint-map.hh ├── parse-math-string.cpp ├── parse-math-string.hh ├── pending.hh ├── pick-paint.hh ├── plain-type.hh ├── points-to-svg-path-string.cpp ├── points-to-svg-path-string.hh ├── pos-info-constants.hh ├── pos-info.cpp ├── pos-info.hh ├── range-iter.hh ├── raster-selection.cpp ├── raster-selection.hh ├── serialize-tuple.hh ├── setting-id.hh ├── setting-util.cpp ├── setting-util.hh ├── settings.cpp ├── settings.hh ├── status-interface.hh ├── string-source.hh ├── template-fwd.hh ├── tool-util.cpp ├── tool-util.hh ├── tris.hh ├── type-util.hh ├── undo-redo.hh ├── visit-selection.hh ├── zoom-level.cpp └── zoom-level.hh └── wxwidgets-14821.patch /.gitattributes: -------------------------------------------------------------------------------- 1 | /help/source/*.txt text eol=lf 2 | /help/source/licenses/*.txt text eol=lf 3 | /help/images/*.map text eol=lf 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.pdb 2 | *.exe 3 | *.exe.manifest 4 | *.exp 5 | *.lib 6 | *.tmp 7 | *.dll 8 | *__pycache__* 9 | /Doxyfile 10 | /doxygen 11 | /faint 12 | /generated 13 | -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | Copyright 2009 Lukas Kemmer 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. -------------------------------------------------------------------------------- /build-sys/build_sys/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | from . build_sys import build 4 | from . build_sys import unknown_version_str 5 | from . build_sys import build_installer 6 | from . build_sys import parse_command_line 7 | from build_sys.opts import BuildOptions 8 | import build_sys.gen_method_def as gen_method_def 9 | import build_sys.gen_resource as gen_resource 10 | import build_sys.gen_text_expressions as gen_text_expressions 11 | import build_sys.util as util 12 | -------------------------------------------------------------------------------- /build-sys/build_sys/util/__init__.py: -------------------------------------------------------------------------------- 1 | from . util import list_cpp 2 | from . util import strip_ext 3 | -------------------------------------------------------------------------------- /build-sys/code_utils/.gitignore: -------------------------------------------------------------------------------- 1 | defs-summary.txt 2 | -------------------------------------------------------------------------------- /build-sys/elisp/test-data/help-sample.txt: -------------------------------------------------------------------------------- 1 | = Help text sample = 2 | Some text for testing the Faint help emacs mode. 3 | 4 | = Another heading = 5 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 6 | 7 | A command follows \ref(some-label-reference) <- that was it. 8 | -------------------------------------------------------------------------------- /build-sys/test-gen-help.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | import sys 5 | import build_sys.gen_help as gen 6 | 7 | force = "--force" in sys.argv 8 | gen.run(force) 9 | -------------------------------------------------------------------------------- /build-sys/test-gen-method-def.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | import sys 5 | import build_sys.gen_method_def as gen 6 | 7 | if len(sys.argv) == 2: 8 | gen.check_file(sys.argv[1]) 9 | 10 | elif len(sys.argv) == 5: 11 | src, dst, dst_doc, name = sys.argv[1:] 12 | gen.generate(src, dst, dst_doc, name) 13 | -------------------------------------------------------------------------------- /build-sys/test-sources/header1.hh: -------------------------------------------------------------------------------- 1 | #include "test-sources/header2.hh" 2 | -------------------------------------------------------------------------------- /build-sys/test-sources/header2.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/build-sys/test-sources/header2.hh -------------------------------------------------------------------------------- /build-sys/test-sources/source1.cpp: -------------------------------------------------------------------------------- 1 | #include "test-sources/header1.hh" 2 | -------------------------------------------------------------------------------- /build-sys/test-sources/source2.cpp: -------------------------------------------------------------------------------- 1 | #include "test-sources/header2.hh" 2 | -------------------------------------------------------------------------------- /build/.gitignore: -------------------------------------------------------------------------------- 1 | out.txt 2 | err.txt 3 | build.cfg 4 | objs-* 5 | generated_makefile 6 | -------------------------------------------------------------------------------- /doc/angle360_ccw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/angle360_ccw.png -------------------------------------------------------------------------------- /doc/bicubic_F.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/bicubic_F.png -------------------------------------------------------------------------------- /doc/bicubic_R.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/bicubic_R.png -------------------------------------------------------------------------------- /doc/bicubic_position.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/bicubic_position.png -------------------------------------------------------------------------------- /doc/bitmap-list-ctrl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/bitmap-list-ctrl.png -------------------------------------------------------------------------------- /doc/brush-edge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/brush-edge.png -------------------------------------------------------------------------------- /doc/caret-pos-delta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/caret-pos-delta.png -------------------------------------------------------------------------------- /doc/drop-down-shifted-top-line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/drop-down-shifted-top-line.png -------------------------------------------------------------------------------- /doc/ellipse_perimeter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/ellipse_perimeter.png -------------------------------------------------------------------------------- /doc/elliptic-arc-area.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/elliptic-arc-area.png -------------------------------------------------------------------------------- /doc/floiled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/floiled.png -------------------------------------------------------------------------------- /doc/frame-mid-point.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/frame-mid-point.png -------------------------------------------------------------------------------- /doc/fuuuu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/fuuuu.png -------------------------------------------------------------------------------- /doc/grow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/grow.png -------------------------------------------------------------------------------- /doc/inflated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/inflated.png -------------------------------------------------------------------------------- /doc/line_angle_cw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/line_angle_cw.png -------------------------------------------------------------------------------- /doc/placement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/placement.png -------------------------------------------------------------------------------- /doc/refresh-on-mouse-out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/refresh-on-mouse-out.png -------------------------------------------------------------------------------- /doc/rotation-adjustment-size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/rotation-adjustment-size.png -------------------------------------------------------------------------------- /doc/rotation-blending.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/rotation-blending.png -------------------------------------------------------------------------------- /doc/test-tri-a-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/test-tri-a-1.png -------------------------------------------------------------------------------- /doc/test-tri-a-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/test-tri-a-2.png -------------------------------------------------------------------------------- /doc/test-tri-a-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/test-tri-a-3.png -------------------------------------------------------------------------------- /doc/test-tri-a-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/test-tri-a-4.png -------------------------------------------------------------------------------- /doc/test-tri-b-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/test-tri-b-1.png -------------------------------------------------------------------------------- /doc/test-tri-b-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/test-tri-b-2.png -------------------------------------------------------------------------------- /doc/test-tri-b-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/test-tri-b-3.png -------------------------------------------------------------------------------- /doc/test-tri-b-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/test-tri-b-4.png -------------------------------------------------------------------------------- /doc/test-tri-legend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/test-tri-legend.png -------------------------------------------------------------------------------- /doc/text-centering.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/text-centering.png -------------------------------------------------------------------------------- /doc/text-rendering.txt: -------------------------------------------------------------------------------- 1 | \def(text-rendering)Text rendering; 2 | 3 | 4 | -------------------------------------------------------------------------------- /doc/text-typography-terms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/doc/text-typography-terms.png -------------------------------------------------------------------------------- /ext/.gitignore: -------------------------------------------------------------------------------- 1 | out 2 | -------------------------------------------------------------------------------- /ext/README.org: -------------------------------------------------------------------------------- 1 | * Faint Python Extension 2 | A Python3 extension based on Faint. 3 | 4 | This folder contains code for a Python extension library, providing 5 | functionality to import parts of the Faint API in Python instead of 6 | requiring the hassle of running Faint silently with ~--run~ on a script 7 | file. 8 | -------------------------------------------------------------------------------- /ext/deploy.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | import os 3 | import sys 4 | import shutil 5 | from faint_pyd_paths import SRC_FILE, DST_DIR, DST_FILE 6 | 7 | if sys.platform.startswith('linux'): 8 | print("Not implemented.") 9 | exit(1) 10 | 11 | if not os.path.exists(SRC_FILE): 12 | print("%s not found!" % SRC_FILE) 13 | exit(1) 14 | 15 | if not os.path.exists(DST_DIR): 16 | print("Folder %s missing!" % DST_DIR) 17 | exit(1) 18 | 19 | print("Copying %s to %s" % (SRC_FILE, DST_DIR)) 20 | shutil.copy(SRC_FILE, DST_FILE) 21 | -------------------------------------------------------------------------------- /ext/faint_pyd_paths.py: -------------------------------------------------------------------------------- 1 | import os 2 | SRC_FILE = "out/ifaint.pyd" 3 | DST_DIR = "c:/Python34/DLLs" 4 | DST_FILE = os.path.join(DST_DIR, "ifaint.pyd") 5 | -------------------------------------------------------------------------------- /ext/paths.py: -------------------------------------------------------------------------------- 1 | SRC_FILE = "out/faint.pyd" 2 | DST_DIR = "c:/Python34/DLL" 3 | -------------------------------------------------------------------------------- /ext/undeploy.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | import os 3 | import shutil 4 | import sys 5 | from faint_pyd_paths import SRC_FILE, DST_DIR, DST_FILE 6 | 7 | if sys.platform.startswith('linux'): 8 | print("Not implemented.") 9 | exit(1) 10 | 11 | if not os.path.exists(DST_DIR): 12 | print("Folder %s is missing!" % DST_DIR) 13 | exit(1) 14 | 15 | if os.path.exists(DST_FILE): 16 | os.remove(DST_FILE) 17 | else: 18 | print("File not found: %s" % DST_FILE) 19 | -------------------------------------------------------------------------------- /formats/gif/giflib-5.0.5/README-GIFLIB-FAINT.org: -------------------------------------------------------------------------------- 1 | * GIFLIB and Faint 2 | 3 | This folder contains a modified fraction of GIFLIB. 4 | 5 | GIFLIB is copyright Eric S. Raymond, and is used under its license 6 | (see the file COPYING). 7 | 8 | Note: Several files not required by Faint have been removed. Some 9 | files have been modified to compile more readily on Windows. 10 | 11 | Refer to the GIFLIB-project for undamaged distributions: 12 | 13 | http://sourceforge.net/projects/giflib/ 14 | http://giflib.sourceforge.net/ 15 | -------------------------------------------------------------------------------- /geo/axis.hh: -------------------------------------------------------------------------------- 1 | // -*- coding: us-ascii-unix -*- 2 | // Copyright 2014 Lukas Kemmer 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); you 5 | // may not use this file except in compliance with the License. You 6 | // may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 13 | // implied. See the License for the specific language governing 14 | // permissions and limitations under the License. 15 | 16 | #ifndef FAINT_AXIS_HH 17 | #define FAINT_AXIS_HH 18 | 19 | namespace faint{ 20 | 21 | enum class Axis{HORIZONTAL, VERTICAL}; 22 | 23 | } // namespace 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /graphics/add-frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/add-frame.png -------------------------------------------------------------------------------- /graphics/alpha-blending.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/alpha-blending.png -------------------------------------------------------------------------------- /graphics/brush-circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/brush-circle.png -------------------------------------------------------------------------------- /graphics/brush-experimental.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/brush-experimental.png -------------------------------------------------------------------------------- /graphics/brush-rect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/brush-rect.png -------------------------------------------------------------------------------- /graphics/choice-opaque.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/choice-opaque.png -------------------------------------------------------------------------------- /graphics/choice-transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/choice-transparent.png -------------------------------------------------------------------------------- /graphics/close-frame-highlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/close-frame-highlight.png -------------------------------------------------------------------------------- /graphics/close-frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/close-frame.png -------------------------------------------------------------------------------- /graphics/cursor-add-point.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-add-point.cur -------------------------------------------------------------------------------- /graphics/cursor-brush-out.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-brush-out.cur -------------------------------------------------------------------------------- /graphics/cursor-brush.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-brush.cur -------------------------------------------------------------------------------- /graphics/cursor-bucket-boundary.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-bucket-boundary.cur -------------------------------------------------------------------------------- /graphics/cursor-bucket-replace-other.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-bucket-replace-other.cur -------------------------------------------------------------------------------- /graphics/cursor-bucket-replace.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-bucket-replace.cur -------------------------------------------------------------------------------- /graphics/cursor-bucket.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-bucket.cur -------------------------------------------------------------------------------- /graphics/cursor-calibrate-crosshair.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-calibrate-crosshair.cur -------------------------------------------------------------------------------- /graphics/cursor-clone.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-clone.cur -------------------------------------------------------------------------------- /graphics/cursor-control-point-1.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-control-point-1.cur -------------------------------------------------------------------------------- /graphics/cursor-control-point-2.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-control-point-2.cur -------------------------------------------------------------------------------- /graphics/cursor-crosshair.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-crosshair.cur -------------------------------------------------------------------------------- /graphics/cursor-curve.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-curve.cur -------------------------------------------------------------------------------- /graphics/cursor-drag-copy-frame.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-drag-copy-frame.cur -------------------------------------------------------------------------------- /graphics/cursor-drag-frame.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-drag-frame.cur -------------------------------------------------------------------------------- /graphics/cursor-drag-scale.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-drag-scale.cur -------------------------------------------------------------------------------- /graphics/cursor-horizontal-slider.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-horizontal-slider.cur -------------------------------------------------------------------------------- /graphics/cursor-hot-spot.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-hot-spot.cur -------------------------------------------------------------------------------- /graphics/cursor-level-define.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-level-define.cur -------------------------------------------------------------------------------- /graphics/cursor-level-scale.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-level-scale.cur -------------------------------------------------------------------------------- /graphics/cursor-level.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-level.cur -------------------------------------------------------------------------------- /graphics/cursor-move-point.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-move-point.cur -------------------------------------------------------------------------------- /graphics/cursor-move-selection.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-move-selection.cur -------------------------------------------------------------------------------- /graphics/cursor-move.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-move.cur -------------------------------------------------------------------------------- /graphics/cursor-pen.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-pen.cur -------------------------------------------------------------------------------- /graphics/cursor-picker-pattern-topleft.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-picker-pattern-topleft.cur -------------------------------------------------------------------------------- /graphics/cursor-picker-pattern.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-picker-pattern.cur -------------------------------------------------------------------------------- /graphics/cursor-picker.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-picker.cur -------------------------------------------------------------------------------- /graphics/cursor-rotate.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-rotate.cur -------------------------------------------------------------------------------- /graphics/cursor-square-cross.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-square-cross.cur -------------------------------------------------------------------------------- /graphics/cursor-text-cross.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-text-cross.cur -------------------------------------------------------------------------------- /graphics/cursor-vertical-slider.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/cursor-vertical-slider.cur -------------------------------------------------------------------------------- /graphics/edit-points.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/edit-points.png -------------------------------------------------------------------------------- /graphics/faint-icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/faint-icon.ico -------------------------------------------------------------------------------- /graphics/faint.rc: -------------------------------------------------------------------------------- 1 | // Resources for MSW 2 | 3 | // Icon for the faint-executable 4 | 0 ICON "faint-icon.ico" 5 | 6 | // Include the wx rc for wxCURSOR_BLANK 7 | #include "wx/msw/wx.rc" 8 | -------------------------------------------------------------------------------- /graphics/fillstyle-border-and-fill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/fillstyle-border-and-fill.png -------------------------------------------------------------------------------- /graphics/fillstyle-border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/fillstyle-border.png -------------------------------------------------------------------------------- /graphics/fillstyle-fill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/fillstyle-fill.png -------------------------------------------------------------------------------- /graphics/grid-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/grid-off.png -------------------------------------------------------------------------------- /graphics/grid-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/grid-on.png -------------------------------------------------------------------------------- /graphics/help-back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/help-back.png -------------------------------------------------------------------------------- /graphics/help-forward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/help-forward.png -------------------------------------------------------------------------------- /graphics/icon-faint-python16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/icon-faint-python16.png -------------------------------------------------------------------------------- /graphics/icon-faint-python32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/icon-faint-python32.png -------------------------------------------------------------------------------- /graphics/icon-faint16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/icon-faint16.png -------------------------------------------------------------------------------- /graphics/icon-faint32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/icon-faint32.png -------------------------------------------------------------------------------- /graphics/icon-help16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/icon-help16.png -------------------------------------------------------------------------------- /graphics/icon-help32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/icon-help32.png -------------------------------------------------------------------------------- /graphics/layer-object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/layer-object.png -------------------------------------------------------------------------------- /graphics/layer-raster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/layer-raster.png -------------------------------------------------------------------------------- /graphics/line-arrow-front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/line-arrow-front.png -------------------------------------------------------------------------------- /graphics/line-no-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/line-no-arrow.png -------------------------------------------------------------------------------- /graphics/line-polyline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/line-polyline.png -------------------------------------------------------------------------------- /graphics/linestyle-long-dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/linestyle-long-dash.png -------------------------------------------------------------------------------- /graphics/linestyle-solid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/linestyle-solid.png -------------------------------------------------------------------------------- /graphics/path-closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/path-closed.png -------------------------------------------------------------------------------- /graphics/pointtype-curve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/pointtype-curve.png -------------------------------------------------------------------------------- /graphics/pointtype-line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/pointtype-line.png -------------------------------------------------------------------------------- /graphics/resizedlg-placement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/resizedlg-placement.png -------------------------------------------------------------------------------- /graphics/resizedlg-scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/resizedlg-scale.png -------------------------------------------------------------------------------- /graphics/rotate-dialog-flip-horizontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/rotate-dialog-flip-horizontal.png -------------------------------------------------------------------------------- /graphics/rotate-dialog-flip-vertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/rotate-dialog-flip-vertical.png -------------------------------------------------------------------------------- /graphics/rotate-dialog-rotate-next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/rotate-dialog-rotate-next.png -------------------------------------------------------------------------------- /graphics/rotate-dialog-rotate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/rotate-dialog-rotate.png -------------------------------------------------------------------------------- /graphics/tape-measure-line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/tape-measure-line.png -------------------------------------------------------------------------------- /graphics/tape-measure-triangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/tape-measure-triangle.png -------------------------------------------------------------------------------- /graphics/text-align-center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/text-align-center.png -------------------------------------------------------------------------------- /graphics/text-align-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/text-align-left.png -------------------------------------------------------------------------------- /graphics/text-align-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/text-align-right.png -------------------------------------------------------------------------------- /graphics/text-bounded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/text-bounded.png -------------------------------------------------------------------------------- /graphics/text-parsing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/text-parsing.png -------------------------------------------------------------------------------- /graphics/tool-brush.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/tool-brush.png -------------------------------------------------------------------------------- /graphics/tool-calibrate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/tool-calibrate.png -------------------------------------------------------------------------------- /graphics/tool-ellipse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/tool-ellipse.png -------------------------------------------------------------------------------- /graphics/tool-floodfill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/tool-floodfill.png -------------------------------------------------------------------------------- /graphics/tool-hot-spot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/tool-hot-spot.png -------------------------------------------------------------------------------- /graphics/tool-level.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/tool-level.png -------------------------------------------------------------------------------- /graphics/tool-line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/tool-line.png -------------------------------------------------------------------------------- /graphics/tool-path.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/tool-path.png -------------------------------------------------------------------------------- /graphics/tool-pen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/tool-pen.png -------------------------------------------------------------------------------- /graphics/tool-picker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/tool-picker.png -------------------------------------------------------------------------------- /graphics/tool-polygon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/tool-polygon.png -------------------------------------------------------------------------------- /graphics/tool-rectangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/tool-rectangle.png -------------------------------------------------------------------------------- /graphics/tool-selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/tool-selection.png -------------------------------------------------------------------------------- /graphics/tool-spline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/tool-spline.png -------------------------------------------------------------------------------- /graphics/tool-tape-measure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/tool-tape-measure.png -------------------------------------------------------------------------------- /graphics/tool-text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/graphics/tool-text.png -------------------------------------------------------------------------------- /help/.gitignore: -------------------------------------------------------------------------------- 1 | *.html 2 | contents.dat 3 | source/generated 4 | -------------------------------------------------------------------------------- /help/example_py/py_canvas_example.py: -------------------------------------------------------------------------------- 1 | from faint import * 2 | 3 | #start 4 | # Draw a line on the active frame in the active image 5 | active = get_active_image() 6 | active.line(0,0,100,100) 7 | 8 | # Add a line object with the active settings 9 | active.Line((0,0,100,100), get_settings()) 10 | 11 | # ...however, many functions have forwards to the active 12 | # canvas, so this is enough: 13 | line(0,0,100,100) 14 | Line((0,0,100,100), get_settings()) 15 | 16 | # Retrieve the file name of the active image 17 | name = get_active_image().get_filename() 18 | -------------------------------------------------------------------------------- /help/example_py/py_frame_example.py: -------------------------------------------------------------------------------- 1 | from faint import * 2 | 3 | #start 4 | # Retrieving a frame from an image 5 | image = get_active_image() 6 | frame = image.get_frame(3) 7 | frame.line(0,0,100,100) 8 | -------------------------------------------------------------------------------- /help/example_py/python_bind_keys.notpy: -------------------------------------------------------------------------------- 1 | #start 2 | # Request binding the invert function to a key 3 | >> bind(invert) 4 | [press key] 5 | -------------------------------------------------------------------------------- /help/example_py/python_bind_keys_bindc.py: -------------------------------------------------------------------------------- 1 | from faint import * 2 | 3 | #start 4 | bindc('h',invert) # Binds the invert function to the H-key 5 | bindc('h',desaturate,mod.ctrl) # Binds desaturate to Ctrl+H 6 | bindc('h',context_flip_horizontal,mod.ctrl|mod.shift) # Binds context_flip_horizontal to Ctrl+Shift+H 7 | -------------------------------------------------------------------------------- /help/example_py/python_bind_keys_bindk.py: -------------------------------------------------------------------------------- 1 | from faint import * 2 | 3 | #start 4 | bindk(key.arrow_up, zoom_in, mod.ctrl) # Binds zoom_in to the Ctrl+Up 5 | bindk(key.arrow_down, zoom_out, mod.ctrl) # Binds zoom_out to Ctrl+Down 6 | bindk(key.backspace, auto_crop) # Binds auto_crop to back-space 7 | -------------------------------------------------------------------------------- /help/example_py/python_bind_keys_lambda.py: -------------------------------------------------------------------------------- 1 | from faint import * 2 | 3 | #start 4 | # Set red foreground color with Shift+R 5 | bindc('r',lambda: set_fg(255,0,0),mod.shift) 6 | -------------------------------------------------------------------------------- /help/example_py/python_bind_keys_wrapper.py: -------------------------------------------------------------------------------- 1 | from faint import * 2 | 3 | #start 4 | def set_red_pixel(): 5 | x, y = get_mouse_pos() # Get parameters 6 | set_pixel(x,y,(255,0,0)) 7 | 8 | # Set red pixel under mouse with Shift+R 9 | bindc('r', set_red_pixel, mod.shift) 10 | -------------------------------------------------------------------------------- /help/example_py/python_bitmap.py: -------------------------------------------------------------------------------- 1 | from faint import * 2 | 3 | #start 4 | # Create a 320 by 200 bitmap 5 | bmp = Bitmap(320, 200) 6 | 7 | # Fill the bitmap with magenta 8 | for x in range(320): 9 | for y in range(200): 10 | bmp.set_pixel(x,y,(255,0,255)) 11 | 12 | # Draw the bitmap at x,y=10,10 in the active canvas 13 | get_active_image().blit((10,10), bmp); 14 | -------------------------------------------------------------------------------- /help/example_py/python_custom_format.py: -------------------------------------------------------------------------------- 1 | from faint import add_format, Settings 2 | 3 | #start 4 | def load_silly(file_path, image_props): 5 | frame_props = image_props.add_frame(640,480) 6 | frame_props.Text((0,0,400,100), file_path, Settings()) 7 | 8 | def save_silly(file_path, canvas): 9 | f = open(file_path, 'w') 10 | 11 | for object in canvas.get_objects(): 12 | f.write(str(object) + "\n") 13 | 14 | add_format(load_silly, save_silly, "Silly format", "silly") 15 | -------------------------------------------------------------------------------- /help/example_py/scripting_intro_bind.py: -------------------------------------------------------------------------------- 1 | from faint import * 2 | #start 3 | # A custom function that changes tool settings 4 | def example_function(): 5 | tool_line() 6 | set_linewidth(10.0) 7 | set_fg(0,0,255) 8 | 9 | # Connecting the function to a key 10 | bind(example_function) 11 | ##[press key] 12 | -------------------------------------------------------------------------------- /help/example_py/scripting_intro_squares.py: -------------------------------------------------------------------------------- 1 | from faint import line 2 | #start 3 | for i in range(100): 4 | line( (0, i * 10), (640, i * 10) ) # Horizontal lines 5 | line( (i * 10, 0), (i * 10, 480) ) # Vertical lines 6 | -------------------------------------------------------------------------------- /help/images/arc-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/arc-example.png -------------------------------------------------------------------------------- /help/images/brush-size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/brush-size.png -------------------------------------------------------------------------------- /help/images/calibrated-area-done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/calibrated-area-done.png -------------------------------------------------------------------------------- /help/images/calibrated-area-edited.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/calibrated-area-edited.png -------------------------------------------------------------------------------- /help/images/calibrated-area-name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/calibrated-area-name.png -------------------------------------------------------------------------------- /help/images/color-0-alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/color-0-alpha.png -------------------------------------------------------------------------------- /help/images/color-128-alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/color-128-alpha.png -------------------------------------------------------------------------------- /help/images/color-255-alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/color-255-alpha.png -------------------------------------------------------------------------------- /help/images/color-draw-with-gradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/color-draw-with-gradient.png -------------------------------------------------------------------------------- /help/images/color-draw-with-pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/color-draw-with-pattern.png -------------------------------------------------------------------------------- /help/images/color-gradient-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/color-gradient-icon.png -------------------------------------------------------------------------------- /help/images/color-options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/color-options.png -------------------------------------------------------------------------------- /help/images/color-palette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/color-palette.png -------------------------------------------------------------------------------- /help/images/color-pattern-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/color-pattern-icon.png -------------------------------------------------------------------------------- /help/images/color-selective-resaturation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/color-selective-resaturation.png -------------------------------------------------------------------------------- /help/images/constrain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/constrain.png -------------------------------------------------------------------------------- /help/images/dwim-delete1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/dwim-delete1.png -------------------------------------------------------------------------------- /help/images/dwim-delete2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/dwim-delete2.png -------------------------------------------------------------------------------- /help/images/dwim-delete3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/dwim-delete3.png -------------------------------------------------------------------------------- /help/images/dwim-delete4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/dwim-delete4.png -------------------------------------------------------------------------------- /help/images/dwim-resize1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/dwim-resize1.png -------------------------------------------------------------------------------- /help/images/dwim-resize2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/dwim-resize2.png -------------------------------------------------------------------------------- /help/images/dwim-resize3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/dwim-resize3.png -------------------------------------------------------------------------------- /help/images/dwim-resize4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/dwim-resize4.png -------------------------------------------------------------------------------- /help/images/edit-points-enabled-cutout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/edit-points-enabled-cutout.png -------------------------------------------------------------------------------- /help/images/editable-arc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/editable-arc.png -------------------------------------------------------------------------------- /help/images/editable-polygon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/editable-polygon.png -------------------------------------------------------------------------------- /help/images/faint-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/faint-icon.png -------------------------------------------------------------------------------- /help/images/feat-90-snap-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-90-snap-1.png -------------------------------------------------------------------------------- /help/images/feat-90-snap-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-90-snap-2.png -------------------------------------------------------------------------------- /help/images/feat-90-snap-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-90-snap-3.png -------------------------------------------------------------------------------- /help/images/feat-90-snap-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-90-snap-4.png -------------------------------------------------------------------------------- /help/images/feat-90-snap-polygon-post.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-90-snap-polygon-post.png -------------------------------------------------------------------------------- /help/images/feat-90-snap-polygon-pre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-90-snap-polygon-pre.png -------------------------------------------------------------------------------- /help/images/feat-90-snap-post.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-90-snap-post.png -------------------------------------------------------------------------------- /help/images/feat-90-snap-pre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-90-snap-pre.png -------------------------------------------------------------------------------- /help/images/feat-autocrop-post.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-autocrop-post.png -------------------------------------------------------------------------------- /help/images/feat-autocrop-pre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-autocrop-pre.png -------------------------------------------------------------------------------- /help/images/feat-become-path-ellipse1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-become-path-ellipse1.png -------------------------------------------------------------------------------- /help/images/feat-become-path-ellipse2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-become-path-ellipse2.png -------------------------------------------------------------------------------- /help/images/feat-become-path-ellipse3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-become-path-ellipse3.png -------------------------------------------------------------------------------- /help/images/feat-become-path-text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-become-path-text.png -------------------------------------------------------------------------------- /help/images/feat-brightness-contrast1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-brightness-contrast1.jpg -------------------------------------------------------------------------------- /help/images/feat-brightness-contrast2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-brightness-contrast2.jpg -------------------------------------------------------------------------------- /help/images/feat-crop-objects-post.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-crop-objects-post.png -------------------------------------------------------------------------------- /help/images/feat-crop-objects-pre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-crop-objects-pre.png -------------------------------------------------------------------------------- /help/images/feat-crop-raster-post.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-crop-raster-post.png -------------------------------------------------------------------------------- /help/images/feat-crop-raster-pre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-crop-raster-pre.png -------------------------------------------------------------------------------- /help/images/feat-delete-objects-post.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-delete-objects-post.png -------------------------------------------------------------------------------- /help/images/feat-delete-objects-pre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-delete-objects-pre.png -------------------------------------------------------------------------------- /help/images/feat-delete-raster-post.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-delete-raster-post.png -------------------------------------------------------------------------------- /help/images/feat-delete-raster-pre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-delete-raster-pre.png -------------------------------------------------------------------------------- /help/images/feat-delete-raster-yellow-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-delete-raster-yellow-bg.png -------------------------------------------------------------------------------- /help/images/feat-desaturate-color.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-desaturate-color.jpg -------------------------------------------------------------------------------- /help/images/feat-desaturate-unweighted.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-desaturate-unweighted.jpg -------------------------------------------------------------------------------- /help/images/feat-desaturate-weighted.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-desaturate-weighted.jpg -------------------------------------------------------------------------------- /help/images/feat-dwim-auto-crop-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-dwim-auto-crop-1.png -------------------------------------------------------------------------------- /help/images/feat-dwim-auto-crop-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-dwim-auto-crop-2.png -------------------------------------------------------------------------------- /help/images/feat-dwim-auto-crop-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-dwim-auto-crop-3.png -------------------------------------------------------------------------------- /help/images/feat-dwim-rotate-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-dwim-rotate-1.png -------------------------------------------------------------------------------- /help/images/feat-dwim-rotate-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-dwim-rotate-2.png -------------------------------------------------------------------------------- /help/images/feat-dwim-rotate-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-dwim-rotate-3.png -------------------------------------------------------------------------------- /help/images/feat-dwim-rotate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-dwim-rotate.png -------------------------------------------------------------------------------- /help/images/feat-erase-but-color1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-erase-but-color1.png -------------------------------------------------------------------------------- /help/images/feat-erase-but-color2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-erase-but-color2.png -------------------------------------------------------------------------------- /help/images/feat-flatten1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-flatten1.png -------------------------------------------------------------------------------- /help/images/feat-flatten2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-flatten2.png -------------------------------------------------------------------------------- /help/images/feat-flatten3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-flatten3.png -------------------------------------------------------------------------------- /help/images/feat-grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-grid.png -------------------------------------------------------------------------------- /help/images/feat-icon-dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-icon-dialog.png -------------------------------------------------------------------------------- /help/images/feat-icon-object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-icon-object.png -------------------------------------------------------------------------------- /help/images/feat-icon-raster-and-object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-icon-raster-and-object.png -------------------------------------------------------------------------------- /help/images/feat-icon-raster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-icon-raster.png -------------------------------------------------------------------------------- /help/images/feat-icon-scriptable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-icon-scriptable.png -------------------------------------------------------------------------------- /help/images/feat-icon-tool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-icon-tool.png -------------------------------------------------------------------------------- /help/images/feat-invert-cat1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-invert-cat1.png -------------------------------------------------------------------------------- /help/images/feat-invert-cat2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-invert-cat2.png -------------------------------------------------------------------------------- /help/images/feat-invert.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-invert.jpg -------------------------------------------------------------------------------- /help/images/feat-pixelize1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-pixelize1.png -------------------------------------------------------------------------------- /help/images/feat-pixelize2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-pixelize2.png -------------------------------------------------------------------------------- /help/images/feat-quantized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-quantized.png -------------------------------------------------------------------------------- /help/images/feat-replace-alpha-magenta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-replace-alpha-magenta.png -------------------------------------------------------------------------------- /help/images/feat-replace-alpha-pre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-replace-alpha-pre.png -------------------------------------------------------------------------------- /help/images/feat-replace-alpha-red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-replace-alpha-red.png -------------------------------------------------------------------------------- /help/images/feat-replace-alpha-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-replace-alpha-white.png -------------------------------------------------------------------------------- /help/images/feat-resize-object-aligned.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-resize-object-aligned.png -------------------------------------------------------------------------------- /help/images/feat-resize-object-box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-resize-object-box.png -------------------------------------------------------------------------------- /help/images/feat-resize-object-skew1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-resize-object-skew1.png -------------------------------------------------------------------------------- /help/images/feat-resize-object-skew2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-resize-object-skew2.png -------------------------------------------------------------------------------- /help/images/feat-resize-object1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-resize-object1.png -------------------------------------------------------------------------------- /help/images/feat-resize-object2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-resize-object2.png -------------------------------------------------------------------------------- /help/images/feat-resize-object3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-resize-object3.png -------------------------------------------------------------------------------- /help/images/feat-shrink-selection-post.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-shrink-selection-post.png -------------------------------------------------------------------------------- /help/images/feat-shrink-selection-pre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-shrink-selection-pre.png -------------------------------------------------------------------------------- /help/images/feat-skew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-skew.png -------------------------------------------------------------------------------- /help/images/feat-snap-object-points.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-snap-object-points.png -------------------------------------------------------------------------------- /help/images/feat-threshold-pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-threshold-pattern.png -------------------------------------------------------------------------------- /help/images/feat-threshold1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-threshold1.png -------------------------------------------------------------------------------- /help/images/feat-threshold2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-threshold2.png -------------------------------------------------------------------------------- /help/images/feat-transparent-raster-object-bg-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-transparent-raster-object-bg-1.png -------------------------------------------------------------------------------- /help/images/feat-transparent-raster-object-bg-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-transparent-raster-object-bg-2.png -------------------------------------------------------------------------------- /help/images/feat-transparent-raster-object-bg-color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-transparent-raster-object-bg-color.png -------------------------------------------------------------------------------- /help/images/feat-transparent-raster-object-bg-quick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-transparent-raster-object-bg-quick.png -------------------------------------------------------------------------------- /help/images/feat-transparent-selection-bg-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-transparent-selection-bg-1.png -------------------------------------------------------------------------------- /help/images/feat-transparent-selection-bg-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-transparent-selection-bg-2.png -------------------------------------------------------------------------------- /help/images/feat-transparent-selection-bg-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-transparent-selection-bg-3.png -------------------------------------------------------------------------------- /help/images/feat-transparent-selection-bg-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-transparent-selection-bg-4.png -------------------------------------------------------------------------------- /help/images/feat-transparent-selection-bg-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/feat-transparent-selection-bg-overview.png -------------------------------------------------------------------------------- /help/images/fmt-alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/fmt-alpha.png -------------------------------------------------------------------------------- /help/images/fmt-animation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/fmt-animation.png -------------------------------------------------------------------------------- /help/images/fmt-flatten.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/fmt-flatten.png -------------------------------------------------------------------------------- /help/images/fmt-limited-size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/fmt-limited-size.png -------------------------------------------------------------------------------- /help/images/fmt-lossless.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/fmt-lossless.png -------------------------------------------------------------------------------- /help/images/fmt-lossy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/fmt-lossy.png -------------------------------------------------------------------------------- /help/images/fmt-multi-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/fmt-multi-image.png -------------------------------------------------------------------------------- /help/images/fmt-no-alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/fmt-no-alpha.png -------------------------------------------------------------------------------- /help/images/fmt-palette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/fmt-palette.png -------------------------------------------------------------------------------- /help/images/fmt-vector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/fmt-vector.png -------------------------------------------------------------------------------- /help/images/fontface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/fontface.png -------------------------------------------------------------------------------- /help/images/fontsize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/fontsize.png -------------------------------------------------------------------------------- /help/images/gravel1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gravel1.jpg -------------------------------------------------------------------------------- /help/images/gravel2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gravel2.jpg -------------------------------------------------------------------------------- /help/images/gui-brightness-contrast-dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-brightness-contrast-dialog.png -------------------------------------------------------------------------------- /help/images/gui-color-selection-dialog-gradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-color-selection-dialog-gradient.png -------------------------------------------------------------------------------- /help/images/gui-color-selection-dialog-hsl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-color-selection-dialog-hsl.png -------------------------------------------------------------------------------- /help/images/gui-color-selection-dialog-pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-color-selection-dialog-pattern.png -------------------------------------------------------------------------------- /help/images/gui-frame-control.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-frame-control.png -------------------------------------------------------------------------------- /help/images/gui-grid-control-disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-grid-control-disabled.png -------------------------------------------------------------------------------- /help/images/gui-grid-control-drag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-grid-control-drag.png -------------------------------------------------------------------------------- /help/images/gui-grid-control-enabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-grid-control-enabled.png -------------------------------------------------------------------------------- /help/images/gui-grid-dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-grid-dialog.png -------------------------------------------------------------------------------- /help/images/gui-hot-spot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-hot-spot.png -------------------------------------------------------------------------------- /help/images/gui-image-resize-handles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-image-resize-handles.png -------------------------------------------------------------------------------- /help/images/gui-overview.map: -------------------------------------------------------------------------------- 1 | 147,85,434,108 ref-menu.txt 2 | 147,114,227,160 raster-vs-object.txt 3 | 235,110,458,133 gui-tabs.txt 4 | 892,136,909,154 gui-image-resize-handles.txt 5 | 147,160,227,315 gui-tool-panel.txt 6 | 147,322,227,534 settings.txt 7 | 147,574,206,636 gui-selected-color-control.txt 8 | 210,574,604,636 gui-color-panel.txt 9 | 630,574,786,636 gui-zoom-control.txt 10 | 790,574,856,636 gui-grid-control.txt 11 | 863,574,1020,636 gui-frame-control.txt 12 | 146,641,570,664 gui-status-bar.txt 13 | 579,641,1010,664 gui-status-bar.txt 14 | -------------------------------------------------------------------------------- /help/images/gui-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-overview.png -------------------------------------------------------------------------------- /help/images/gui-resize-dialog-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-resize-dialog-image.png -------------------------------------------------------------------------------- /help/images/gui-resize-dialog-objects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-resize-dialog-objects.png -------------------------------------------------------------------------------- /help/images/gui-rotate-dialog1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-rotate-dialog1.png -------------------------------------------------------------------------------- /help/images/gui-rotate-dialog2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-rotate-dialog2.png -------------------------------------------------------------------------------- /help/images/gui-selected-color-selection-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-selected-color-selection-bg.png -------------------------------------------------------------------------------- /help/images/gui-selected-color-selection-both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-selected-color-selection-both.png -------------------------------------------------------------------------------- /help/images/gui-selected-color-selection-fg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-selected-color-selection-fg.png -------------------------------------------------------------------------------- /help/images/gui-selected-color-selection-none.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-selected-color-selection-none.png -------------------------------------------------------------------------------- /help/images/gui-status-info1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-status-info1.png -------------------------------------------------------------------------------- /help/images/gui-status-info2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-status-info2.png -------------------------------------------------------------------------------- /help/images/gui-tab-asterisk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-tab-asterisk.png -------------------------------------------------------------------------------- /help/images/gui-tab-drag1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-tab-drag1.png -------------------------------------------------------------------------------- /help/images/gui-tab-drag2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-tab-drag2.png -------------------------------------------------------------------------------- /help/images/gui-tab-split.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-tab-split.png -------------------------------------------------------------------------------- /help/images/gui-threshold-dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-threshold-dialog.png -------------------------------------------------------------------------------- /help/images/gui-tool-panel-annotated.map: -------------------------------------------------------------------------------- 1 | 0,13,100,36 tool-selection.txt 2 | 0,38,100,61 tool-brush.txt 3 | 0,63,100,86 tool-line.txt 4 | 0,88,100,111 tool-rectangle.txt 5 | 0,113,100,136 tool-polygon.txt 6 | 0,183,101,206 tool-calibrate.txt 7 | 0,208,101,231 tool-tape-measure.txt 8 | 0,233,101,256 tool-level.txt 9 | 0,258,101,281 tool-hot-spot.txt 10 | 102,13,219,36 tool-pen.txt 11 | 102,38,219,61 tool-color-picker.txt 12 | 102,63,219,86 tool-path.txt 13 | 102,88,219,111 tool-ellipse.txt 14 | 102,113,219,136 tool-text.txt 15 | 102,138,219,161 tool-fill.txt 16 | -------------------------------------------------------------------------------- /help/images/gui-tool-panel-annotated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-tool-panel-annotated.png -------------------------------------------------------------------------------- /help/images/gui-zoom-control-fit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-zoom-control-fit.png -------------------------------------------------------------------------------- /help/images/gui-zoom-control-zoomed-out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-zoom-control-zoomed-out.png -------------------------------------------------------------------------------- /help/images/gui-zoom-control.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/gui-zoom-control.png -------------------------------------------------------------------------------- /help/images/icon-extref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/icon-extref.png -------------------------------------------------------------------------------- /help/images/icon-info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/icon-info.png -------------------------------------------------------------------------------- /help/images/icon-warn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/icon-warn.png -------------------------------------------------------------------------------- /help/images/icon-work-in-progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/icon-work-in-progress.png -------------------------------------------------------------------------------- /help/images/img-annotations.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/img-annotations.jpg -------------------------------------------------------------------------------- /help/images/img-layer-selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/img-layer-selection.png -------------------------------------------------------------------------------- /help/images/key-alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/key-alt.png -------------------------------------------------------------------------------- /help/images/key-ctrl-mouse-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/key-ctrl-mouse-right.png -------------------------------------------------------------------------------- /help/images/key-ctrl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/key-ctrl.png -------------------------------------------------------------------------------- /help/images/key-delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/key-delete.png -------------------------------------------------------------------------------- /help/images/key-shift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/key-shift.png -------------------------------------------------------------------------------- /help/images/layer-raster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/layer-raster.png -------------------------------------------------------------------------------- /help/images/layer-vector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/layer-vector.png -------------------------------------------------------------------------------- /help/images/linewidth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/linewidth.png -------------------------------------------------------------------------------- /help/images/mouse-left-double.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/mouse-left-double.png -------------------------------------------------------------------------------- /help/images/mouse-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/mouse-left.png -------------------------------------------------------------------------------- /help/images/mouse-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/mouse-right.png -------------------------------------------------------------------------------- /help/images/msw-cmd-line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/msw-cmd-line.png -------------------------------------------------------------------------------- /help/images/na.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/na.png -------------------------------------------------------------------------------- /help/images/object-name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/object-name.png -------------------------------------------------------------------------------- /help/images/object-selection-cutout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/object-selection-cutout.png -------------------------------------------------------------------------------- /help/images/object-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/object-settings.png -------------------------------------------------------------------------------- /help/images/objselectsettings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/objselectsettings.png -------------------------------------------------------------------------------- /help/images/picker-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/picker-example.png -------------------------------------------------------------------------------- /help/images/py-detached-copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/py-detached-copy.png -------------------------------------------------------------------------------- /help/images/py-modifies-state.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/py-modifies-state.png -------------------------------------------------------------------------------- /help/images/python-console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/python-console.png -------------------------------------------------------------------------------- /help/images/python-script-output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/python-script-output.png -------------------------------------------------------------------------------- /help/images/raster-graphics-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/raster-graphics-example.png -------------------------------------------------------------------------------- /help/images/raster-selection-cutout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/raster-selection-cutout.png -------------------------------------------------------------------------------- /help/images/raster-selection-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/raster-selection-example.png -------------------------------------------------------------------------------- /help/images/select-objects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/select-objects.png -------------------------------------------------------------------------------- /help/images/select-vector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/select-vector.png -------------------------------------------------------------------------------- /help/images/selected-color-control.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/selected-color-control.png -------------------------------------------------------------------------------- /help/images/setting-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/setting-bg.png -------------------------------------------------------------------------------- /help/images/setting-fg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/setting-fg.png -------------------------------------------------------------------------------- /help/images/supports-object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/supports-object.png -------------------------------------------------------------------------------- /help/images/supports-raster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/supports-raster.png -------------------------------------------------------------------------------- /help/images/symbol-alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-alpha.png -------------------------------------------------------------------------------- /help/images/symbol-angle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-angle.png -------------------------------------------------------------------------------- /help/images/symbol-beta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-beta.png -------------------------------------------------------------------------------- /help/images/symbol-deg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-deg.png -------------------------------------------------------------------------------- /help/images/symbol-delta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-delta.png -------------------------------------------------------------------------------- /help/images/symbol-dog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-dog.png -------------------------------------------------------------------------------- /help/images/symbol-dprime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-dprime.png -------------------------------------------------------------------------------- /help/images/symbol-ellipsis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-ellipsis.png -------------------------------------------------------------------------------- /help/images/symbol-ge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-ge.png -------------------------------------------------------------------------------- /help/images/symbol-in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-in.png -------------------------------------------------------------------------------- /help/images/symbol-inf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-inf.png -------------------------------------------------------------------------------- /help/images/symbol-interrobang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-interrobang.png -------------------------------------------------------------------------------- /help/images/symbol-larr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-larr.png -------------------------------------------------------------------------------- /help/images/symbol-le.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-le.png -------------------------------------------------------------------------------- /help/images/symbol-li.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-li.png -------------------------------------------------------------------------------- /help/images/symbol-lrarr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-lrarr.png -------------------------------------------------------------------------------- /help/images/symbol-ne.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-ne.png -------------------------------------------------------------------------------- /help/images/symbol-notparallel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-notparallel.png -------------------------------------------------------------------------------- /help/images/symbol-parallel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-parallel.png -------------------------------------------------------------------------------- /help/images/symbol-perfect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-perfect.png -------------------------------------------------------------------------------- /help/images/symbol-pi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-pi.png -------------------------------------------------------------------------------- /help/images/symbol-poop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-poop.png -------------------------------------------------------------------------------- /help/images/symbol-prime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-prime.png -------------------------------------------------------------------------------- /help/images/symbol-rarr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-rarr.png -------------------------------------------------------------------------------- /help/images/symbol-scissors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-scissors.png -------------------------------------------------------------------------------- /help/images/symbol-sq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-sq.png -------------------------------------------------------------------------------- /help/images/symbol-sqrt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-sqrt.png -------------------------------------------------------------------------------- /help/images/symbol-times.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-times.png -------------------------------------------------------------------------------- /help/images/symbol-tm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-tm.png -------------------------------------------------------------------------------- /help/images/symbol-tprime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-tprime.png -------------------------------------------------------------------------------- /help/images/symbol-whoa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/symbol-whoa.png -------------------------------------------------------------------------------- /help/images/tape-measure-drop-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/tape-measure-drop-down.png -------------------------------------------------------------------------------- /help/images/tape-measure-mm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/tape-measure-mm.png -------------------------------------------------------------------------------- /help/images/text-delta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/text-delta.png -------------------------------------------------------------------------------- /help/images/text-expression-done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/text-expression-done.png -------------------------------------------------------------------------------- /help/images/text-expression-editing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/text-expression-editing.png -------------------------------------------------------------------------------- /help/images/tool-brush-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/tool-brush-example.png -------------------------------------------------------------------------------- /help/images/tool-calibrate-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/tool-calibrate-example.png -------------------------------------------------------------------------------- /help/images/tool-calibrate-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/tool-calibrate-idle.png -------------------------------------------------------------------------------- /help/images/tool-fill-boundary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/tool-fill-boundary.png -------------------------------------------------------------------------------- /help/images/tool-fill-flood.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/tool-fill-flood.png -------------------------------------------------------------------------------- /help/images/tool-fill-replace-other.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/tool-fill-replace-other.png -------------------------------------------------------------------------------- /help/images/tool-fill-unchanged.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/tool-fill-unchanged.png -------------------------------------------------------------------------------- /help/images/tool-level-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/tool-level-1.png -------------------------------------------------------------------------------- /help/images/tool-level-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/tool-level-2.png -------------------------------------------------------------------------------- /help/images/tool-pen-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/tool-pen-example.png -------------------------------------------------------------------------------- /help/images/transparent-bg-cutout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/transparent-bg-cutout.png -------------------------------------------------------------------------------- /help/images/tri-skew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/tri-skew.png -------------------------------------------------------------------------------- /help/images/tri.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/tri.png -------------------------------------------------------------------------------- /help/images/vector-graphics-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/vector-graphics-example.png -------------------------------------------------------------------------------- /help/images/vector-selection-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/images/vector-selection-example.png -------------------------------------------------------------------------------- /help/source-images/cut-out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/help/source-images/cut-out.png -------------------------------------------------------------------------------- /help/source/binds.txt: -------------------------------------------------------------------------------- 1 | page:"Key Binds" 2 | 3 | = Key binds = 4 | This is an automatically updated list of Python functions bound to keys. 5 | For instructions on how to change binds, see \ref(python-bind-keys.txt). 6 | 7 | \bindlist() 8 | -------------------------------------------------------------------------------- /help/source/dialogs.txt: -------------------------------------------------------------------------------- 1 | page:"Dialogs" 2 | summary:"Dialog reference" 3 | 4 | = Dialogs = 5 | \child_summary 6 | -------------------------------------------------------------------------------- /help/source/feat-become-path.txt: -------------------------------------------------------------------------------- 1 | page:"Become Path" 2 | summary:"Convert objects to paths" 3 | 4 | = Become Path = 5 | Non-path objects can be converted to paths for more flexible editing. 6 | 7 | To convert the selected objects to path objects use either 8 | Objects->Become Path in the menu, or the Python method 9 | \ref(py-something.txt,become_path). 10 | 11 | == Ellipse example == 12 | After converting an ellipse to a path, control points become available. 13 | ||\image(feat-become-path-ellipse1.png)||\image(feat-become-path-ellipse2.png)||\image(feat-become-path-ellipse3.png)|| 14 | 15 | == Text example == 16 | Text objects converted to paths can have both a stroke (outline) and fill, 17 | but the text can no longer be edited. 18 | 19 | \image(feat-become-path-text.png) 20 | -------------------------------------------------------------------------------- /help/source/feat-blur.txt: -------------------------------------------------------------------------------- 1 | page:"Blur" 2 | summary:"Blurs the image" 3 | 4 | \image(feat-icon-raster.png) \image(feat-icon-dialog.png) \image(feat-icon-scriptable.png) 5 | 6 | = Gaussian blur = 7 | The image can be blurred in Faint using either 8 | the \ref(gui-sharpness-dialog.txt,sharpness dialog) or the Python 9 | function gaussian_blur. 10 | --- 11 | See also \ref(feat-sharpen.txt) for sharpening an image. 12 | -------------------------------------------------------------------------------- /help/source/feat-boundary-fill.txt: -------------------------------------------------------------------------------- 1 | page:"Boundary Fill" 2 | summary:"Replace colors within a region bounded by a different color" 3 | 4 | \image(feat-icon-raster.png) \image(feat-icon-tool.png) \image(feat-icon-scriptable.png) 5 | = Boundary fill = 6 | A boundary fill replaces all colors surrounded by a color with a 7 | different color. 8 | 9 | ||\image(tool-fill-unchanged.png)||\image(tool-fill-boundary.png)|| 10 | ||Before boundary fill||After boundary fill|| 11 | 12 | == Using the fill tool == 13 | The \ref(tool-fill,fill tool) performs a boundary fill if Shift is held. 14 | 15 | == Using Python == 16 | ||boundary_fill( (x,y), fill, boundary_color)||Boundary fill originating at x,y|| 17 | 18 | --- 19 | See also \ref(feat-flood-fill.txt) for replacing contiguous colors. 20 | -------------------------------------------------------------------------------- /help/source/feat-brightness-contrast.txt: -------------------------------------------------------------------------------- 1 | page:"Brightness/Contrast" 2 | summary:"Adjusting brightness/contrast (bias and gain)" 3 | 4 | \image(feat-icon-raster.png) \image(feat-icon-dialog.png) \image(feat-icon-scriptable.png) 5 | 6 | = Brightness/Contrast = 7 | Faint can adjust the brightness and contrast of images, using either 8 | the \ref(gui-brightness-contrast-dialog.txt) or the Python function 9 | brightness-contrast. 10 | 11 | ||\image(feat-desaturate-color.jpg)||\image(feat-brightness-contrast1.jpg)||\image(feat-brightness-contrast2.jpg)|| 12 | || /Original image/ || /Lowered brightness/ || /Increased contrast/ || 13 | -------------------------------------------------------------------------------- /help/source/feat-calibration.txt: -------------------------------------------------------------------------------- 1 | page:"Calibration" 2 | summary:"Calibrated image measures" 3 | 4 | = Calibration = 5 | Images can be calibrated using the 6 | \ref(tool-calibrate, calibration tool) 7 | to provide other units than pixels for the 8 | \ref(tool-tape-measure, tape-measure tool) or 9 | \ref(ref-text-expressions.txt,text expressions). 10 | 11 | == Use in text objects == 12 | The calibrated area of a \ref(naming-objects,named) rectangle object shown in a 13 | \ref(ref-text-expressions.txt, text object): 14 | 15 | \image(calibrated-area-name.png) \image(calibrated-area-edited.png) \image(calibrated-area-done.png) 16 | 17 | == Use with tape measure tool == 18 | A calibrated reading with the \ref(tool-tape-measure,tape-measure) tool: 19 | 20 | \image(tape-measure-mm.png) 21 | -------------------------------------------------------------------------------- /help/source/feat-color-balance.txt: -------------------------------------------------------------------------------- 1 | page:"Color balance" 2 | summary:"Adjusting the color balance" 3 | 4 | = Color balance = 5 | The color balance can be adjusted using either 6 | the \ref(gui-color-balance-dialog.txt) or the Python function 7 | color_balance. 8 | -------------------------------------------------------------------------------- /help/source/feat-config-file.txt: -------------------------------------------------------------------------------- 1 | page:"Configuration File" 2 | summary:"An automatically executed Python file for customizing Faint" 3 | 4 | \image(feat-icon-scriptable.png) 5 | = Configuration file = 6 | A user-specific python script file, .faint.py, is executed when Faint 7 | starts. This allows storing custom functions and key binds. The 8 | location of the configuration file varies with operating systems. 9 | 10 | This is the path to your configuration file:\br 11 | \pyconfigpath 12 | 13 | The \ref(gui-python-console.txt), when first opened, also displays the 14 | location of the used configuration file. 15 | 16 | If no configuration file exists in the expected location when Faint is 17 | started, a default configuration file is created. 18 | -------------------------------------------------------------------------------- /help/source/feat-constrain.txt: -------------------------------------------------------------------------------- 1 | page:"Constrained drawing" 2 | summary:"Constraining drawing and editing to directions or proportions" 3 | 4 | \image(feat-icon-tool.png) \image(feat-icon-raster-and-object.png) 5 | 6 | = Constrained drawing = 7 | Many tools can be "constrained". For example, line drawing can be 8 | constrained to certain angles, and rectangle drawing can be 9 | constrained to squares. Selection movement can be constrained along 10 | the horizontal or vertical axes. 11 | 12 | To constrain, hold shift while drawing or adjusting an object or selection.\br 13 | \image(key-shift.png)\image(mouse-left.png) 14 | 15 | \image(constrain.png) 16 | 17 | See \ref(tools.txt) for per-tool information. 18 | -------------------------------------------------------------------------------- /help/source/feat-flood-fill.txt: -------------------------------------------------------------------------------- 1 | page:"Flood Fill" 2 | summary:"Replace a contiguous area of one color with a different color" 3 | 4 | \image(feat-icon-raster.png) \image(feat-icon-tool.png) \image(feat-icon-scriptable.png) 5 | 6 | = Flood fill = 7 | Replaces a contiguous area of one color with a different color 8 | 9 | ||\image(tool-fill-unchanged.png)||\image(tool-fill-flood.png)|| 10 | ||Before flood fill||After flood fill|| 11 | 12 | == Using the fill tool == 13 | The \ref(tool-fill,fill tool) flood fills from the click position. 14 | 15 | == Using Python == 16 | ||image.fill((x,y), paint)||Flood fill originating at x,y using the specified color, pattern or gradient.|| 17 | 18 | --- 19 | See also \ref(feat-boundary-fill.txt) for replacing colors bounded by 20 | a color. 21 | -------------------------------------------------------------------------------- /help/source/feat-grid.txt: -------------------------------------------------------------------------------- 1 | page:"Grid" 2 | summary:"The grid supports snapping to positions in an image" 3 | 4 | = Grid = 5 | The grid supports constraining drawing and positions of objects to 6 | grid intersections. To enable the grid, use 7 | the \ref(gui-grid-control.txt) or \ref(gui-grid-dialog.txt). 8 | 9 | \image(feat-grid.png) 10 | 11 | Many tools snap to the grid when Ctrl is held. 12 | 13 | --- 14 | See \ref(gui-grid-control.txt), \ref(gui-grid-dialog.txt).\br 15 | \ref(py-grid.txt,Grid Python class) 16 | -------------------------------------------------------------------------------- /help/source/feat-invert.txt: -------------------------------------------------------------------------------- 1 | page:"Invert" 2 | summary:"Invert image colors" 3 | \image(feat-icon-raster.png) \image(feat-icon-scriptable.png) 4 | = Invert = 5 | Inverts the colors in the image. 6 | 7 | || \image(feat-desaturate-color.jpg)|| \image(feat-invert.jpg)|| 8 | 9 | || \image(feat-invert-cat1.png)|| \image(feat-invert-cat2.png)|| 10 | 11 | == Method == 12 | To invert use the menu option Image->Color->Invert or these Python functions: 13 | 14 | *Free functions* 15 | || withbind:invert(); || Inverts the active image || 16 | || invert(i1, i2, ...) || Inverts the specified images || 17 | 18 | *Image methods* 19 | || image.invert() || Inverts the specified image || 20 | -------------------------------------------------------------------------------- /help/source/feat-pixelize.txt: -------------------------------------------------------------------------------- 1 | page:"Pixelize" 2 | summary:"Pixelize an image (by averaging pixels)" 3 | 4 | \image(feat-icon-raster.png) \image(feat-icon-dialog.png) \image(feat-icon-scriptable.png) 5 | 6 | = Pixelize = 7 | Pixelizing an image replaces squares of pixels with their average 8 | value, in practice decreasing the resolution (but not the image size). 9 | 10 | ||\image(feat-desaturate-color.jpg)||\image(feat-pixelize1.png)||\image(feat-pixelize2.png)|| 11 | || /The original image/ || / Pixelized with size 5 / || /Pixelized with size 10 /|| 12 | 13 | == Method == 14 | To pixelize use the menu option Image->Effects->Pixelize or the Python 15 | function pixelize(pixel_size). 16 | -------------------------------------------------------------------------------- /help/source/feat-quantize.txt: -------------------------------------------------------------------------------- 1 | page:"Quantize" 2 | summary:"Reducing the number of colors in an image" 3 | 4 | \image(feat-icon-scriptable.png) 5 | 6 | = Quantize = 7 | Quantizing the image reduces the amount of colors to at most 256. The 8 | quantization also performs dithering for better approximation of 9 | colors. 10 | 11 | ||\image(feat-desaturate-color.jpg)||\image(feat-quantized.png)|| 12 | || /Original, 16139 colors/ || /Quantized, 178 colors/ || 13 | 14 | 15 | == Method == 16 | When saving to certain formats with limited color depth, such 17 | as \ref(fmt-bmp.txt,8-bit bmp), the saved image is quantized 18 | automatically. 19 | 20 | To quantize an image within Faint, use the Python method quantize. 21 | 22 | *Image Methods* 23 | || image.quantize(); || Quantizes the specified image || 24 | -------------------------------------------------------------------------------- /help/source/feat-raster-selection.txt: -------------------------------------------------------------------------------- 1 | page:"Raster Selection" 2 | summary:"Raster selection methods" 3 | 4 | = Raster selection = 5 | A region in the image can be selected. The selected region is the 6 | target for some operations. The selected content can be moved and 7 | rotated. 8 | 9 | == Deselect == 10 | * *Menu* (in Raster mode): Edit->select None (Ctrl+D) 11 | 12 | == Select all == 13 | * *Menu* (in Raster mode): Edit->Select All (Ctrl+A) 14 | 15 | == Select specific region == 16 | * *Tool*: Use the \ref(tool-raster-selection,selection tool) 17 | * *Python* set_selection('rect') 18 | 19 | --- 20 | See also \ref(feat-object-selection.txt) for the object equivalent and 21 | \ref(feat-shrink-selection.txt) for a way to clamp the selection to content. 22 | -------------------------------------------------------------------------------- /help/source/feat-rotate.txt: -------------------------------------------------------------------------------- 1 | page:"Rotate" 2 | summary:"Rotation" 3 | 4 | = Rotation = 5 | Faint has a number of rotation options: 6 | 7 | The \ref(gui-rotate-dialog.txt,rotate dialog) allows rotating the 8 | entire image, selected objects or a raster selection.\br 9 | 10 | The \ref(tool-selection.txt,selection tool) allows free-hand rotation 11 | of selected objects.\br 12 | 13 | The \ref(tool-level.txt,level tool) rotates the image to align a 14 | feature with a defined horizon. 15 | 16 | The Python function withbind:context_rotate_90CW(); rotates the image 17 | or selection 90-degrees clockwise. 18 | 19 | Objects can be rotated with the Python-methods rotate or set_angle on 20 | the \ref(py-something.txt,Something class). They can also be 21 | transformed by replacing their \ref(py-tri.txt). 22 | -------------------------------------------------------------------------------- /help/source/feat-sharpen.txt: -------------------------------------------------------------------------------- 1 | page:"Sharpen" 2 | summary:"Sharpens the image" 3 | 4 | \image(feat-icon-raster.png) \image(feat-icon-dialog.png) \image(feat-icon-scriptable.png) 5 | 6 | = Sharpen = 7 | The image can be sharpened in Faint using either the \ref(gui-sharpness-dialog.txt,sharpness dialog) 8 | or the Python function unsharp_mask. 9 | --- 10 | See also \ref(feat-blur.txt) for blurring an image. 11 | -------------------------------------------------------------------------------- /help/source/feat-skew.txt: -------------------------------------------------------------------------------- 1 | page:"Skew (Shear mapping)" 2 | summary:"Skewing objects" 3 | 4 | \image(feat-icon-scriptable.png) 5 | 6 | = Skew (shear mapping) = 7 | Objects can be skewed, either as a result of image 8 | aligned \ref(feat-resize-objects.txt,resizing) of a rotated object or 9 | with the \ref(py-something.txt,skew) method which sets the skewness in 10 | pixels. 11 | 12 | ||\image(feat-skew.png)|| 13 | || / Rectangle skewed 20 pixels / || 14 | -------------------------------------------------------------------------------- /help/source/feat-snap-points.txt: -------------------------------------------------------------------------------- 1 | page:"Snap to Object points" 2 | summary:"Snapping to points in objects while adjusting points or drawing" 3 | 4 | \image(feat-icon-object.png) \image(feat-icon-tool.png) 5 | 6 | = Snap to object points = 7 | While drawing or moving a point, the adjusted point can be snapped to 8 | certain points in objects. 9 | 10 | ||\image(feat-snap-object-points.png)||A line with end-points snapped to the center of a circle\br and the middle of the left side of a rectangle|| 11 | 12 | To snap, hold \image(key-ctrl.png) while moving a point or drawing shapes. 13 | 14 | --- 15 | See also:\br 16 | * \ref(feat-grid.txt) for snapping to a grid 17 | * \ref(feat-snap90.txt) for forming corners while drawing lines and polygons 18 | -------------------------------------------------------------------------------- /help/source/feat-threshold.txt: -------------------------------------------------------------------------------- 1 | page:"Threshold" 2 | summary:"Thresholding an image so that some intensities are replaced with white, others black" 3 | 4 | = Threshold = 5 | Images can be thresholded so that all pixels within an intensity range 6 | are set to the primary color, and all pixels outside are set to the 7 | secondary color. 8 | 9 | ||\image(feat-desaturate-color.jpg)||\image(feat-threshold1.png)||\image(feat-threshold2.png)||\image(feat-threshold-pattern.png)|| 10 | || /Original image/ || /Thresholded/ || /Thresholded differently/ || /Thresholded with patterns/ || 11 | 12 | == Method == 13 | To threshold the image, use either the \ref(gui-threshold-dialog.txt) or the 14 | Python function threshold(lower,upper). 15 | -------------------------------------------------------------------------------- /help/source/fmt-ico.txt: -------------------------------------------------------------------------------- 1 | page:"ICO" 2 | summary:"A format for application icons on Microsoft Windows" 3 | 4 | \image(fmt-flatten.png) \image(fmt-multi-image.png) \image(fmt-lossless.png) \image(fmt-limited-size.png) 5 | 6 | = Windows icon (.ico) = 7 | A format for application icons on Microsoft Windows. An icon consists 8 | of one or more images of different size and color depth to provide 9 | variants for different situations. The width and height of icons is 10 | limited to 256 pixels. 11 | 12 | The icon format is very similar to the 13 | \ref(fmt-cur.txt,cursor format). 14 | 15 | == Transparency == 16 | Icons use a mask color for transparency. When saved from Faint, fully 17 | transparent pixels (alpha=0) will be transparent. 18 | Semi-transparent-pixels (alpha=1-254) lose their alpha component, 19 | becoming fully opaque. 20 | -------------------------------------------------------------------------------- /help/source/fmt-jpg.txt: -------------------------------------------------------------------------------- 1 | page:"JPEG" 2 | summary:"A compressed format suitable for photographs" 3 | 4 | \image(fmt-flatten.png) \image(fmt-lossy.png) 5 | 6 | = JPEG = 7 | A compressed raster format suitable for photographs. 8 | 9 | == No transparency == 10 | The alpha component is lost when saving JPEG from Faint, all pixels 11 | become fully opaque. 12 | -------------------------------------------------------------------------------- /help/source/fmt-pdf.txt: -------------------------------------------------------------------------------- 1 | page:"PDF" 2 | summary:"A document format" 3 | 4 | \image(fmt-vector.png) \image(fmt-multi-image.png) 5 | 6 | = Portable Document Format (.pdf) = 7 | PDF is a document format with vector graphics. 8 | 9 | Faint has limited PDF support, which can be used to save graphics for 10 | inclusion in PDF-documents generated with for example 11 | \extref(https://en.wikipedia.org/wiki/LaTeX LaTeX). 12 | In other situations, \ref(fmt-svg.txt,SVG) is preferable when saving 13 | vector images from Faint. 14 | 15 | Faint can open the PDF:s it has saved, but not PDF:s from other 16 | applications. 17 | 18 | ||\image(icon-work-in-progress.png)||*Note*: Faint is quite bad at PDF.|| 19 | -------------------------------------------------------------------------------- /help/source/fmt-png.txt: -------------------------------------------------------------------------------- 1 | page:"PNG" 2 | summary:"A lossless raster format with alpha transparency." 3 | 4 | \image(fmt-flatten.png) \image(fmt-lossless.png) \image(fmt-alpha.png) 5 | 6 | = Portable Network Graphics (.png) = 7 | Portable Network Graphics is a lossless raster format with alpha 8 | transparency. 9 | 10 | == Transparency == 11 | PNG images retain the alpha values used in Faint, which allows 12 | different degrees of transparency for individual pixels. 13 | -------------------------------------------------------------------------------- /help/source/gui-brightness-contrast-dialog.txt: -------------------------------------------------------------------------------- 1 | page:"Brightness/Contrast Dialog" 2 | summary:"Dialog for modifying the brightness and contrast of an image" 3 | 4 | = The brightness/contrast dialog = 5 | The brightness and contrast dialog is used to modify the brightness 6 | and contrast of an image. 7 | 8 | \image(gui-brightness-contrast-dialog.png) 9 | 10 | To open the brightness contrast dialog use Image->Brightness Contrast, 11 | or the Python function withbind:dialogs.brightness_contrast();. 12 | 13 | The "Brightness"-slider modifies the average brightness level, while 14 | the "Contrast"-slider amplifies values, see 15 | \ref(feat-brightness-contrast.txt) for more details. 16 | -------------------------------------------------------------------------------- /help/source/gui-color-balance-dialog.txt: -------------------------------------------------------------------------------- 1 | page:"Color Balance Dialog" 2 | summary:"Dialog for adjusting the color balance" 3 | 4 | = The color balance dialog = 5 | The color balance dialog is used for adjusting the color balance. 6 | 7 | To open the color balance dialog use Image->Color->Color balance, 8 | or the Python function withbind:dialogs.color_balance();. 9 | 10 | See \ref(feat-color-balance.txt) for more details. 11 | -------------------------------------------------------------------------------- /help/source/gui-help-window.txt: -------------------------------------------------------------------------------- 1 | page:"Help Window" 2 | summary:"The window containing usage help for Faint" 3 | 4 | = The help window = 5 | The help window shows the Faint-help, and is probably where you're 6 | reading this text. 7 | 8 | To open the Help window dialog use Help->Help index or the Python 9 | function withbind:dialog_help();. 10 | -------------------------------------------------------------------------------- /help/source/gui-open-file-dialog.txt: -------------------------------------------------------------------------------- 1 | page:"Open File dialog" 2 | summary:"The dialog for opening images" 3 | 4 | = The open file dialog = 5 | The dialog used for opening images in Faint. 6 | 7 | To open this dialog, use File->Open or the Python function 8 | withbind:dialogs.open_file(); 9 | -------------------------------------------------------------------------------- /help/source/gui-sharpness-dialog.txt: -------------------------------------------------------------------------------- 1 | page:"Sharpness Dialog" 2 | summary:"Dialog for sharpening or blurring an image" 3 | 4 | = The sharpness dialog = 5 | The sharpness dialog adjusts the image sharpness. 6 | 7 | The slider in the dialog has the current "sharpness" at its center. By 8 | moving the handle to the right, the image 9 | is \ref(feat-sharpen.txt,sharpened) using an unsharp mask. Moving the 10 | handle to the left \ref(feat-blur.txt,blurs) the image using gaussian 11 | blur. 12 | -------------------------------------------------------------------------------- /help/source/gui-tabs.txt: -------------------------------------------------------------------------------- 1 | page:"Tabs" 2 | summary:"The tabs for selecting images" 3 | 4 | = The image tabs = 5 | The tabs above the drawing area are used to select which image to edit 6 | when multiple images have been opened. 7 | 8 | == Unsaved changes indication == 9 | An asterisk after the file name in a tab indicates that the file has 10 | unsaved changes. 11 | ||\image(gui-tab-asterisk.png)|| 12 | 13 | == Reordering == 14 | The tabs can be reordered. To move a tab, click it and drag it to the new location. 15 | ||\image(gui-tab-drag1.png)||\image(gui-tab-drag2.png)|| 16 | 17 | == Splitting == 18 | The view can be split, so multiple images can be viewed side by 19 | side. To split the view, click a tab and drag it to either corner of 20 | the drawing area. 21 | ||\image(gui-tab-split.png)|| 22 | -------------------------------------------------------------------------------- /help/source/gui-threshold-dialog.txt: -------------------------------------------------------------------------------- 1 | page:"Threshold Dialog" 2 | summary:"Dialog for specifying an intensity range to replace with the primary color, while the rest is replaced with the secondary" 3 | 4 | = The threshold dialog = 5 | The threshold dialog is used to specify an intensity threshold for 6 | which all pixels are set to the primary color, while all pixels 7 | outside are set to the secondary color. 8 | 9 | To open the threshold dialog use Image->Color->Threshold, or the 10 | Python function withbind:dialogs.threshold();. 11 | 12 | \image(gui-threshold-dialog.png) 13 | 14 | See \ref(feat-threshold.txt) for more details. 15 | -------------------------------------------------------------------------------- /help/source/gui-tool-panel.txt: -------------------------------------------------------------------------------- 1 | page:"Tool Panel" 2 | summary:"The tool selection panel" 3 | 4 | = The tool panel = 5 | The tool panel on the left side of Faint is used to 6 | select \ref(ref-tools.txt,tools) used for drawing, adding objects, 7 | handling selection and such. 8 | 9 | \imagemap(gui-tool-panel-annotated.map) 10 | -------------------------------------------------------------------------------- /help/source/main.txt: -------------------------------------------------------------------------------- 1 | page:"Faint Basics" 2 | 3 | = \image(faint-icon.png) Faint user manual = 4 | 5 | User documentation for Faint graphics editor. 6 | 7 | || \image(icon-info.png) ||*Navigating the help*: \br Space-bar scrolls the help text one page. \br Arrow-keys target the focused window (either the help index or the help text). Use Ctrl+'Arrow' to target the other window. \br Page Up and Page Down always target the help text window. || 8 | 9 | = Basics = 10 | These help topics will familiarize you with the basics of Faint, and 11 | especially things that may be different from other graphics editors. 12 | 13 | You are recommended to at least read \ref(raster-and-object) to use 14 | Faint effectively. 15 | 16 | \child_summary 17 | -------------------------------------------------------------------------------- /help/source/py-app.txt: -------------------------------------------------------------------------------- 1 | page:"FaintApp" 2 | summary:"Interface for Faint application settings" 3 | 4 | = FaintApp = 5 | \image(py-modifies-state.png) 6 | 7 | Interface for Faint application settings. Accessed via the predefined 8 | "app"-object 9 | 10 | == App properties == 11 | \include(generated/py-app-properties.txt) 12 | 13 | == App methods == 14 | \include(generated/py-app-methods.txt) 15 | -------------------------------------------------------------------------------- /help/source/py-bitmap.txt: -------------------------------------------------------------------------------- 1 | page:"Bitmap" 2 | summary:"Class representing in-memory bitmaps" 3 | 4 | = Bitmap = 5 | \image(py-detached-copy.png) 6 | 7 | The Bitmap class represents in-memory bitmaps. Instances of this class 8 | contain their pixel data, unlike \ref(py-canvas.txt,Canvas)-objects 9 | which always reference an image in a tab. Bitmaps therefore do not 10 | support undo or redo, but instead allow more effective scripted 11 | access. 12 | 13 | == Example use == 14 | \py_example(python_bitmap.py) 15 | 16 | == Bitmap methods == 17 | \include(generated/py-bitmap-methods.txt) 18 | \include(generated/py-common-methods.txt) 19 | 20 | --- 21 | See also \ref(py-canvas.txt) for editing of images opened in tabs and 22 | \ref(py-pattern.txt) for using bitmaps as fill colors. 23 | -------------------------------------------------------------------------------- /help/source/py-clipboard.txt: -------------------------------------------------------------------------------- 1 | page:"clipboard" 2 | summary:"Module with clipboard methods" 3 | 4 | = clipboard = 5 | 6 | The faint.clipboard module contains functions for clipboard storing 7 | and retrieval of text and bitmaps. 8 | 9 | == Functions == 10 | \include(generated/py-clipboard-methods.txt) 11 | 12 | --- 13 | See also:\br 14 | \ref(py-bitmap.txt) - class storable to clipboard. 15 | -------------------------------------------------------------------------------- /help/source/py-dialogs.txt: -------------------------------------------------------------------------------- 1 | page:"Dialogs" 2 | summary:"Methods for showing Faint dialogs" 3 | 4 | = Dialogs = 5 | 6 | The dialogs object has methods for showing Faint dialogs. 7 | 8 | == Methods == 9 | \include(generated/py-dialog-functions-methods.txt) 10 | -------------------------------------------------------------------------------- /help/source/py-frame-props.txt: -------------------------------------------------------------------------------- 1 | page:"FrameProps" 2 | summary:"Interface to new image frames during loading in custom file format load functions" 3 | 4 | = FrameProps = 5 | \image(py-modifies-state.png) 6 | 7 | FrameProps instances are used in load-functions that have been added 8 | with \ref(python-custom-format.txt,add_format) when loading a file 9 | type matching that format. 10 | 11 | FrameProps objects are created with the add_frame-method 12 | of \ref(py-image-props.txt,ImageProps) objects, and are used to load 13 | frames (or images). The pixel and object data for a frame can be 14 | modified using the FrameProps. 15 | 16 | == FrameProps methods == 17 | \include(generated/py-frame-props-methods.txt) 18 | 19 | --- 20 | See also: 21 | * \ref(py-image-props.txt) 22 | * \ref(python-custom-format.txt) - intro to adding file formats. 23 | -------------------------------------------------------------------------------- /help/source/py-functions.txt: -------------------------------------------------------------------------------- 1 | page:"Functions" 2 | summary:"List of Faint Python functions" 3 | 4 | = Functions = 5 | This is a list of all Faint-specific built in Python functions. 6 | 7 | \include(generated/py-functions-methods.txt) 8 | \include(generated/py-global-functions-methods.txt) 9 | -------------------------------------------------------------------------------- /help/source/py-grid.txt: -------------------------------------------------------------------------------- 1 | page:"Grid" 2 | summary:"Interface for the Grid for an image" 3 | 4 | = Grid = 5 | \image(py-modifies-state.png) 6 | 7 | Grid objects are used to modify \ref(feat-grid.txt,grid) settings for an image. 8 | 9 | == Grid properties == 10 | \include(generated/py-grid-properties.txt) 11 | -------------------------------------------------------------------------------- /help/source/py-interpreter.txt: -------------------------------------------------------------------------------- 1 | page:"Interpreter" 2 | summary:"The Interpreter class modifies the Faint Python interpreter window" 3 | 4 | = Interpreter = 5 | \image(py-modifies-state.png) 6 | 7 | Methods on the interpreter class are used to modify 8 | the \ref(gui-python-console.txt,Python console window). Use the 9 | interpreter-object to access the methods. 10 | 11 | == Interpreter methods == 12 | \include(generated/py-interpreter-methods.txt) 13 | 14 | --- 15 | See also \ref(py-window.txt). 16 | -------------------------------------------------------------------------------- /help/source/py-linear-gradient.txt: -------------------------------------------------------------------------------- 1 | page:"LinearGradient" 2 | summary:"Class representing linear gradients" 3 | 4 | = LinearGradient = 5 | \image(py-detached-copy.png) 6 | 7 | The LinearGradient class represents linear 8 | color \ref(color-gradient,gradients). 9 | 10 | == LinearGradient methods == 11 | \include(generated/py-linear-gradient-methods.txt) 12 | 13 | --- 14 | See also \ref(py-radial-gradient.txt) 15 | -------------------------------------------------------------------------------- /help/source/py-pattern.txt: -------------------------------------------------------------------------------- 1 | page:"Pattern" 2 | summary:"Class representing bitmap patterns" 3 | 4 | = Pattern = 5 | \image(py-detached-copy.png) 6 | 7 | The Pattern class represents fill-\ref(color-pattern,patterns). 8 | 9 | == Pattern methods == 10 | \include(generated/py-pattern-methods.txt) 11 | 12 | --- 13 | See also 14 | \ref(py-linear-gradient.txt), 15 | \ref(py-radial-gradient.txt), \ref(py-bitmap.txt). 16 | -------------------------------------------------------------------------------- /help/source/py-radial-gradient.txt: -------------------------------------------------------------------------------- 1 | page:"RadialGradient" 2 | summary:"Class representing radial gradients" 3 | 4 | = RadialGradient = 5 | \image(py-detached-copy.png) 6 | 7 | The RadialGradient class represents radial 8 | color \ref(color-gradient,gradients). 9 | 10 | == RadialGradient methods == 11 | \include(generated/py-radial-gradient-methods.txt) 12 | 13 | --- 14 | See also \ref(py-linear-gradient.txt). 15 | -------------------------------------------------------------------------------- /help/source/py-settings.txt: -------------------------------------------------------------------------------- 1 | page:"Settings" 2 | summary:"Class representing Faint tool or object settings" 3 | 4 | = Settings = 5 | \image(py-detached-copy.png) 6 | 7 | The Settings class represents tool or 8 | object \ref(settings.txt,settings.) 9 | 10 | Note that Settings-objects are self contained (copies), they do not 11 | keep a reference to their source, so to effect a change in Faint, the 12 | modified settings must be passed to a function or method. 13 | 14 | To change the settings of a Faint-object, use the update_settings 15 | method of the \ref(py-something.txt). To use it for the current 16 | settings in Faint (i.e. for tools), use the global update_settings 17 | function. 18 | 19 | == Settings properties == 20 | \include(generated/py-settings-properties.txt) 21 | 22 | == Settings methods == 23 | \include(generated/py-settings-methods.txt) 24 | -------------------------------------------------------------------------------- /help/source/py-something.txt: -------------------------------------------------------------------------------- 1 | page:"Something" 2 | summary:"Class representing Faint Objects" 3 | 4 | = Something = 5 | \image(py-modifies-state.png) 6 | 7 | The ill-named Something-class references a Faint object in a Canvas. 8 | 9 | == Properties == 10 | \include(generated/py-something-properties.txt) 11 | 12 | == Methods == 13 | \include(generated/py-something-methods.txt) 14 | 15 | == Setting properties == 16 | The settings of an object can be accessed and modified using these 17 | properties. 18 | 19 | \include(generated/py-settings-properties.txt) 20 | -------------------------------------------------------------------------------- /help/source/py-tri.txt: -------------------------------------------------------------------------------- 1 | page:"Tri" 2 | summary:"Class representing the transformation of an Object" 3 | 4 | = Tri = 5 | \image(py-detached-copy.png) 6 | 7 | Objects of the Tri class define the scale, rotation and skewness of 8 | the bounding box for objects. 9 | 10 | \image(tri.png) \image(tri-skew.png) 11 | 12 | == Tri properties == 13 | \include(generated/py-tri-properties.txt) 14 | 15 | == Tri methods == 16 | \include(generated/py-tri-methods.txt) 17 | -------------------------------------------------------------------------------- /help/source/py-window.txt: -------------------------------------------------------------------------------- 1 | page:"Window" 2 | summary:"The Window class modifies the Faint application window" 3 | 4 | = Window = 5 | \image(py-modifies-state.png) 6 | 7 | Methods on the window class are used to modify the Faint application 8 | window. Use the window-object to access the methods. 9 | 10 | == Window methods == 11 | \include(generated/py-window-methods.txt) 12 | 13 | --- 14 | See also \ref(py-interpreter.txt). 15 | -------------------------------------------------------------------------------- /help/source/ref-features.txt: -------------------------------------------------------------------------------- 1 | page:"Feature Reference" 2 | 3 | = Feature reference = 4 | This section is an attempt to describe all functionality in Faint as 5 | separate items, ordered alphabetically. 6 | 7 | The entries describe the various ways of using a feature such as 8 | dialogs, tools or scripting. 9 | 10 | \child_summary 11 | -------------------------------------------------------------------------------- /help/source/ref-gui.txt: -------------------------------------------------------------------------------- 1 | page:"User Interface Reference" 2 | 3 | = User interface reference = 4 | \child_summary 5 | -------------------------------------------------------------------------------- /help/source/ref-scripting.txt: -------------------------------------------------------------------------------- 1 | page:"Scripting Reference" 2 | 3 | = Scripting reference = 4 | This section lists the Python classes and functions that form the 5 | interface for programatically drawing and customizing Faint. This 6 | interface is used in the \ref(gui-python-console.txt,interpreter) 7 | or \ref(feat-config-file.txt,configuration file). 8 | 9 | This is a reference section, for an introduction to scripting in 10 | Faint, see instead \ref(scripting-intro.txt). 11 | 12 | \child_summary 13 | -------------------------------------------------------------------------------- /help/source/tool-ellipse.txt: -------------------------------------------------------------------------------- 1 | page:"Ellipse" 2 | summary:"Draw Ellipses" 3 | 4 | = \graphic(tool-ellipse.png) Ellipse (or circle) {tool-ellipse} = 5 | The Ellipse tool Draws ellipses or adds ellipse objects. 6 | 7 | *Settings* 8 | ||\image(linewidth.png)|| Line Width || The width of the ellipse edge || 9 | ||\graphic(linestyle-solid.png) \graphic(linestyle-long-dash.png)|| Line Style || 10 | ||\graphic(fillstyle-border.png) \graphic(fillstyle-fill.png) \graphic(fillstyle-border-and-fill.png) || Fill Style || Outline only, Fill only or Fill and Outline || 11 | 12 | *Keyboard modifiers* 13 | ||\image(key-shift.png)||If shift is held while drawing, the ellipse will be constrained to a circle.|| 14 | ||\image(key-ctrl.png)||If Ctrl is held, the ellipse will be centered at the start point.|| 15 | -------------------------------------------------------------------------------- /help/source/tool-hot-spot.txt: -------------------------------------------------------------------------------- 1 | page:"Hot Spot" 2 | summary:"Tool for setting the hot-spot (image anchor)" 3 | 4 | = \graphic(tool-hot-spot.png) Hot spot {tool-hot-spot} = 5 | The hot spot tool is used to specify the image "hot spot", which is 6 | typically an anchor point. 7 | 8 | Only some file formats, for example \ref(fmt-cur.txt,cur), use the hot 9 | spot. In cursors, the hot spot indicates the targetting pixel. 10 | 11 | When the hot spot tool is used, the current hot-spot is indicated by a 12 | cross (or hash mark if zoomed). 13 | 14 | \image(gui-hot-spot.png)\br 15 | Hot spot for an arrow cursor. 16 | 17 | *Modifiers* 18 | ||\image(mouse-left.png)||Set the clicked pixel as hot-spot for the current frame|| 19 | ||\image(mouse-right.png)||Sets the clicked pixel as hot-spot for all frames|| 20 | -------------------------------------------------------------------------------- /help/source/tool-line.txt: -------------------------------------------------------------------------------- 1 | page:"Line" 2 | summary:"Draw lines" 3 | 4 | = \graphic(tool-line.png) Line {tool-line} = 5 | The line tool is used to draw lines. 6 | 7 | *Settings* 8 | ||\image(linewidth.png)|| Line Width || 9 | || \graphic(linestyle-solid.png) \graphic(linestyle-long-dash.png) || Line Style || 10 | || \graphic(line-arrow-front.png) \graphic(line-no-arrow.png) || Arrow head || 11 | || \graphic(line-polyline.png) || Poly-line || 12 | 13 | *Keyboard modifiers* 14 | ||\image(key-shift.png)||If shift is held while drawing, the lines will be perfecly horizontal, vertical or diagonal.|| 15 | ||\image(key-ctrl.png)||The adjusted line end will \ref(feat-snap-points.txt,snap) to control points of objects.|| 16 | -------------------------------------------------------------------------------- /help/source/tool-path.txt: -------------------------------------------------------------------------------- 1 | page:"Path" 2 | summary:"Draws arbitrary shape outlines" 3 | 4 | = \graphic(tool-path.png) Path {tool-path} = 5 | The path tool is used to draw arbitrary shape outlines. It is similar 6 | to \ref(tool-polygon.txt), but allows curved segments. 7 | 8 | *Settings* 9 | ||\image(linewidth.png)|| Line Width || The width of the polygon edge || 10 | ||\graphic(path-closed.png)|| Close path || Whether the path outline should be closed || 11 | ||\graphic(linestyle-solid.png) \graphic(linestyle-long-dash.png) || Line Style || Solid or dashed || 12 | ||\graphic(pointtype-curve.png) \graphic(pointtype-line.png)||Type for new nodes|| Lines or curves || 13 | ||\graphic(fillstyle-border.png) \graphic(fillstyle-fill.png) \graphic(fillstyle-border-and-fill.png)|| Fill Style || Outline only, Fill only or Fill and Outline || 14 | -------------------------------------------------------------------------------- /help/source/tool-pen.txt: -------------------------------------------------------------------------------- 1 | page:"Pen" 2 | summary:"Tool for single-pixel free-hand drawing" 3 | 4 | = \graphic(tool-pen.png) Pen {tool-pen} = 5 | The pen tool is used for single pixel thick free hand drawing. The pen 6 | is active while a mouse button is held. The left mouse button draws 7 | using the foreground color, the right mouse button draws using the 8 | background color. 9 | 10 | *Settings*\br 11 | The pen has no settings. For variable shape and thickness, use the \ref(tool-brush,brush) instead. 12 | 13 | *Keyboard modifiers*\br 14 | ||\image(key-shift.png) || If shift is held while drawing, the pen will draw horizontal or vertical lines.|| 15 | 16 | \image(tool-pen-example.png) \br'Example pen-output' 17 | -------------------------------------------------------------------------------- /help/source/tool-rectangle.txt: -------------------------------------------------------------------------------- 1 | page:"Rectangle" 2 | summary:"Draw rectangles" 3 | 4 | = \graphic(tool-rectangle.png) Rectangle {tool-rectangle} = 5 | *Settings* 6 | ||\image(linewidth.png)|| Line Width || 7 | ||\graphic(linestyle-solid.png) \graphic(linestyle-long-dash.png)|| Line Style || 8 | ||\graphic(fillstyle-border.png) \graphic(fillstyle-fill.png) \graphic(fillstyle-border-and-fill.png) || Fill Style || Outline only, Fill only or Fill and Outline || 9 | 10 | *Keyboard modifiers* 11 | ||\image(key-shift.png)||The rectangle will be constrained to a square.|| 12 | ||\image(key-ctrl.png)||The rectangle corner will snap to \ref(feat-snap-points.txt,points in objects) or the \ref(feat-grid.txt,grid).|| 13 | -------------------------------------------------------------------------------- /help/source/tool-spline.txt: -------------------------------------------------------------------------------- 1 | page:"Spline" 2 | summary:"Draw curved lines" 3 | 4 | = \graphic(tool-spline.png) Spline (curved line) {tool-spline} = 5 | The spline tool is used to draw curves, also known as splines. 6 | 7 | *Settings* 8 | ||\image(linewidth.png)|| Line Width || 9 | ||\graphic(linestyle-solid.png) \graphic(linestyle-long-dash.png) || Line Style || 10 | -------------------------------------------------------------------------------- /help/source/tool-tape-measure.txt: -------------------------------------------------------------------------------- 1 | page:"Tape measure" 2 | summary:"Show measurements in the image" 3 | 4 | = \graphic(tool-tape-measure.png) Tape measure {tool-tape-measure} = 5 | The tape measure tool is used to read out measurements from an image. 6 | 7 | The tool provides either pixel measures 8 | or \ref(feat-calibration.txt,calibrated units), and provides a 9 | convenient alternative 10 | to \ref(ref-text-expressions.txt,text-expressions) for viewing a 11 | length measure. 12 | 13 | *Settings* 14 | ||\image(tape-measure-drop-down.png)||Unit of measurement|| 15 | ||\graphic(tape-measure-line.png)\graphic(tape-measure-triangle.png)||Show measurements for one line or all sides of a triangle|| 16 | 17 | --- 18 | See also: \ref(tool-calibrate.txt,the calibration tool). 19 | -------------------------------------------------------------------------------- /help/source/user-interface.txt: -------------------------------------------------------------------------------- 1 | page:"User interface" 2 | summary:"Overview of the Faint user interface" 3 | 4 | = User interface = 5 | The Faint user interface is shown below. The indicated regions link to 6 | the documentation for that feature. 7 | 8 | \imagemap(gui-overview.map) 9 | -------------------------------------------------------------------------------- /installer/.gitignore: -------------------------------------------------------------------------------- 1 | installdep 2 | out.nsi 3 | pythonbundle -------------------------------------------------------------------------------- /installer/installer.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/installer/installer.ico -------------------------------------------------------------------------------- /installer/instsplash.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/installer/instsplash.bmp -------------------------------------------------------------------------------- /py/faint/svg/parse/__init__.py: -------------------------------------------------------------------------------- 1 | from . parse_state import ( 2 | ParseState, 3 | svg_length_attr, 4 | svg_length_attr_dumb, 5 | get_style_dict) 6 | -------------------------------------------------------------------------------- /py/faint/svg/write/__init__.py: -------------------------------------------------------------------------------- 1 | from . build_state import SvgBuildState 2 | -------------------------------------------------------------------------------- /py/test/.gitignore: -------------------------------------------------------------------------------- 1 | config.ini 2 | errors.log 3 | out/ -------------------------------------------------------------------------------- /py/test/faint_scripts/__init__.py: -------------------------------------------------------------------------------- 1 | """Scripts passed to Faint via the command line from tests in the 2 | parent folder. 3 | 4 | """ 5 | -------------------------------------------------------------------------------- /py/test/faint_scripts/test-save-suite.py: -------------------------------------------------------------------------------- 1 | import os 2 | from ifaint import cmd_arg 3 | 4 | """Script be passed to Faint with --run by test-svg-suite.py. 5 | Requires that the type is passed with --arg as well, e.g. 6 | > Faint --run test-save.py --arg png 7 | 8 | """ 9 | 10 | outdir = os.path.join(os.getcwd(), 'out', 'suite', cmd_arg) 11 | active = get_active_image() 12 | filename = active.get_filename() 13 | 14 | if filename is not None: 15 | ext = "." + cmd_arg 16 | fn = os.path.basename(active.get_filename()) 17 | fn = fn.replace('.svgz', ext) 18 | fn = fn.replace('.svg', ext) 19 | app.save_backup(get_active_image(), os.path.join(outdir,fn)) 20 | -------------------------------------------------------------------------------- /py/test/mock/ifaint.py: -------------------------------------------------------------------------------- 1 | class LoadError: 2 | def __init__(*args, **kwArgs): 3 | pass 4 | -------------------------------------------------------------------------------- /py/test/src/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/py/test/src/__init__.py -------------------------------------------------------------------------------- /py/test/test_color_background.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | import configparser 5 | import os 6 | import subprocess 7 | import shutil 8 | import src.config as config 9 | import sys 10 | 11 | def test_color_background(cfg, silent): 12 | faint_exe = cfg.get('test', 'faint_exe') 13 | cmd = [faint_exe, '--run', 'faint_scripts/run-test-color-background.py'] 14 | if silent: 15 | cmd.append('--silent') 16 | subprocess.call(cmd) 17 | 18 | if __name__ == '__main__': 19 | if config.maybe_create_config(): 20 | exit(1) 21 | 22 | silent = not 'stay' in sys.argv 23 | cfg = config.read_config() 24 | test_color_background(cfg, silent) 25 | -------------------------------------------------------------------------------- /py/test/test_props.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | import configparser 5 | import os 6 | import subprocess 7 | import shutil 8 | import src.config as config 9 | import sys 10 | 11 | 12 | def test_props(cfg, silent): 13 | faint_exe = cfg.get('test', 'faint_exe') 14 | cmd = [faint_exe, '--run', 'faint_scripts/run-test-props.py'] 15 | if silent: 16 | cmd.append('--silent') 17 | subprocess.call(cmd) 18 | 19 | 20 | if __name__ == '__main__': 21 | if config.maybe_create_config(): 22 | exit(1) 23 | 24 | silent = not 'stay' in sys.argv 25 | cfg = config.read_config() 26 | 27 | test_props(cfg, silent) 28 | -------------------------------------------------------------------------------- /py/test/test_py_api.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | """Test which exercises the Faint Python api. 5 | 6 | """ 7 | 8 | import subprocess 9 | import src.config as config 10 | import sys 11 | 12 | def test_py_api(cfg, silent=True): 13 | faint_exe = cfg.get('test', 'faint_exe') 14 | cmd = [faint_exe, '--run', 'faint_scripts/run-test-py-api.py'] 15 | if silent: 16 | cmd.append('--silent') 17 | subprocess.call(cmd) 18 | 19 | 20 | if __name__ == '__main__': 21 | if config.maybe_create_config(): 22 | exit(1) 23 | 24 | silent = not 'stay' in sys.argv 25 | cfg = config.read_config() 26 | test_py_api(cfg, silent) 27 | -------------------------------------------------------------------------------- /py/test/test_save_pdf.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | """Test which creates a PDF, saves it and opens it. 5 | 6 | """ 7 | 8 | import subprocess 9 | import sys 10 | 11 | import src.config as config 12 | 13 | def test_save_pdf(cfg, silent=True): 14 | faint_exe = cfg.get('test', 'faint_exe') 15 | cmd = [faint_exe, '--run', 'faint_scripts/test-save-pdf.py'] 16 | if silent: 17 | cmd.append('--silent') 18 | subprocess.call(cmd) 19 | 20 | 21 | if __name__ == '__main__': 22 | if config.maybe_create_config(): 23 | exit(1) 24 | silent = not 'stay' in sys.argv 25 | cfg = config.read_config() 26 | test_save_pdf(cfg, silent) 27 | -------------------------------------------------------------------------------- /py/test/test_save_svg.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | """Test which creates an SVG, saves it and opens it. 5 | 6 | """ 7 | 8 | import subprocess 9 | import sys 10 | 11 | import src.config as config 12 | 13 | def test_save_svg(cfg, silent=True): 14 | faint_exe = cfg.get('test', 'faint_exe') 15 | cmd = [faint_exe, '--run', 'faint_scripts/test-save-svg.py'] 16 | if silent: 17 | cmd.append('--silent') 18 | subprocess.call(cmd) 19 | 20 | 21 | if __name__ == '__main__': 22 | if config.maybe_create_config(): 23 | exit(1) 24 | silent = not 'stay' in sys.argv 25 | cfg = config.read_config() 26 | test_save_svg(cfg, silent) 27 | -------------------------------------------------------------------------------- /py/test/test_save_svg_text.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | """Test which creates an SVG with text, saves it and opens it. 5 | 6 | """ 7 | 8 | import subprocess 9 | import sys 10 | 11 | import src.config as config 12 | 13 | def test_save_svg(cfg, silent=True): 14 | faint_exe = cfg.get('test', 'faint_exe') 15 | cmd = [faint_exe, '--run', 'faint_scripts/test-save-svg-text.py'] 16 | if silent: 17 | cmd.append('--silent') 18 | subprocess.call(cmd) 19 | 20 | 21 | if __name__ == '__main__': 22 | if config.maybe_create_config(): 23 | exit(1) 24 | silent = not 'stay' in sys.argv 25 | cfg = config.read_config() 26 | test_save_svg(cfg, silent) 27 | -------------------------------------------------------------------------------- /python/generate/templates/function-bool.txt: -------------------------------------------------------------------------------- 1 | static void as_set_$name(AppContext& app, bool value){ 2 | // From $$file 3 | 4 | app.Set($setting, value); 5 | } 6 | 7 | static bool as_get_$name(AppContext& app){ 8 | // From $$file 9 | 10 | return app.Get($setting); 11 | } 12 | -------------------------------------------------------------------------------- /python/generate/templates/function-color.txt: -------------------------------------------------------------------------------- 1 | static void as_set_$name(AppContext& app, const Paint& paint){ 2 | // From $$file 3 | 4 | app.Set($setting, paint); 5 | } 6 | 7 | static Paint as_get_$name(AppContext& app){ 8 | // From $$file 9 | 10 | return app.Get($setting); 11 | } 12 | -------------------------------------------------------------------------------- /python/generate/templates/function-float.txt: -------------------------------------------------------------------------------- 1 | static void as_set_$name(AppContext& app, faint::coord value){ 2 | // From $$file 3 | 4 | if (value < $min_value || $max_value < value){ 5 | throw ValueError(space_sep("Argument for set_$name", str_length(value), 6 | "outside range [$min_value, $max_value].")); 7 | 8 | } 9 | 10 | app.Set($setting, value); 11 | } 12 | 13 | static coord as_get_$name(AppContext& app){ 14 | // From $$file 15 | 16 | return app.Get($setting); 17 | } 18 | -------------------------------------------------------------------------------- /python/generate/templates/function-int.txt: -------------------------------------------------------------------------------- 1 | static void as_set_$name(AppContext& app, int value){ 2 | // From $$file 3 | 4 | if (value < $min_value || $max_value < value){ 5 | throw ValueError(space_sep("Argument for set_$prettyname", str_int(value), 6 | "outside range [$min_value, $max_value].")); 7 | } 8 | 9 | app.Set($setting, value); 10 | } 11 | 12 | static int as_get_$name(AppContext& app){ 13 | // From $$file 14 | 15 | return app.Get($setting); 16 | } 17 | -------------------------------------------------------------------------------- /python/generate/templates/function-method-def.txt: -------------------------------------------------------------------------------- 1 | // From $$file 2 | FORWARDER(as_set_$name, METH_VARARGS, "set_$prettyname", "$doc_str"), 3 | FORWARDER(as_get_$name, METH_VARARGS, "get_$prettyname", "$doc_str"), 4 | -------------------------------------------------------------------------------- /python/generate/templates/function-string-to-int.txt: -------------------------------------------------------------------------------- 1 | static void as_set_$name(AppContext& app, const utf8_string& s_value){ 2 | // From $$file 3 | 4 | $string_to_int 5 | app.Set($setting, to_int(value)); 6 | } 7 | 8 | static utf8_string as_get_$name(AppContext& app){ 9 | // From $$file 10 | 11 | int i_value = app.Get($setting); 12 | const char* s_value = nullptr; 13 | $int_to_string 14 | return utf8_string(s_value); 15 | } 16 | -------------------------------------------------------------------------------- /python/generate/templates/function-string.txt: -------------------------------------------------------------------------------- 1 | static void as_set_$name(AppContext& app, const utf8_string& value){ 2 | // From $$file 3 | 4 | app.Set($setting, value); 5 | } 6 | 7 | static utf8_string as_get_$name(AppContext& app){ 8 | // From $$file 9 | 10 | return app.Get($setting); 11 | } 12 | -------------------------------------------------------------------------------- /python/generate/templates/object-bool.txt: -------------------------------------------------------------------------------- 1 | struct Smth_property_$name{ 2 | // From $$file 3 | 4 | static bool Get(const BoundObject& self){ 5 | const Settings& settings = self.obj->GetSettings(); 6 | if (!settings.Has($setting)){ 7 | throw ValueError("That object does not support $prettyname."); 8 | } 9 | return settings.Get($setting); 10 | } 11 | 12 | static void Set(const BoundObject& self, bool value){ 13 | if (!self.obj->GetSettings().Has($setting)){ 14 | throw ValueError("That object does not support $prettyname."); 15 | } 16 | 17 | auto cmd = change_setting_command(self.obj, $setting, value); 18 | self.ctx->RunCommand(*self.canvas, std::move(cmd), self.frameId); 19 | } 20 | }; 21 | -------------------------------------------------------------------------------- /python/generate/templates/object-color.txt: -------------------------------------------------------------------------------- 1 | struct Smth_property_$name{ 2 | // From $$file 3 | 4 | static Paint Get(const BoundObject& self){ 5 | const Settings& settings = self.obj->GetSettings(); 6 | if (!settings.Has($setting)){ 7 | throw ValueError("That object does not support $prettyname."); 8 | } 9 | return settings.Get($setting); 10 | } 11 | 12 | static void Set(const BoundObject& self, const Paint& value){ 13 | if (!self.obj->GetSettings().Has($setting)){ 14 | throw ValueError("That object does not support $prettyname."); 15 | } 16 | 17 | auto cmd = change_setting_command(self.obj, $setting, value); 18 | self.ctx->RunCommand(*self.canvas, std::move(cmd), self.frameId); 19 | } 20 | }; 21 | -------------------------------------------------------------------------------- /python/generate/templates/object-int.txt: -------------------------------------------------------------------------------- 1 | struct Smth_property_$name{ 2 | // From $$file 3 | 4 | static int Get(const BoundObject& self){ 5 | const Settings& settings = self.obj->GetSettings(); 6 | if (!settings.Has($setting)){ 7 | throw ValueError("That object does not support $prettyname."); 8 | } 9 | return settings.Get($setting); 10 | } 11 | 12 | static void Set(const BoundObject& self, 13 | const StaticBoundedInt<$min_value, $max_value>& value) 14 | { 15 | if (!self.obj->GetSettings().Has($setting)){ 16 | throw ValueError("That object does not support $prettyname."); 17 | } 18 | 19 | auto cmd = change_setting_command(self.obj, $setting, value.GetValue()); 20 | self.ctx->RunCommand(*self.canvas, std::move(cmd), self.frameId); 21 | } 22 | }; 23 | -------------------------------------------------------------------------------- /python/generate/templates/object-property.txt: -------------------------------------------------------------------------------- 1 | PROPERTY_FORWARDER(Smth_property_$name, "$prettyname", "$doc_str"), // from $$file 2 | -------------------------------------------------------------------------------- /python/generate/templates/object-string.txt: -------------------------------------------------------------------------------- 1 | struct Smth_property_$name{ 2 | // From $$file 3 | 4 | static utf8_string Get(const BoundObject& self){ 5 | const Settings& settings = self.obj->GetSettings(); 6 | if (!settings.Has($setting)){ 7 | throw ValueError("That object does not support $prettyname."); 8 | } 9 | return settings.Get($setting); 10 | } 11 | 12 | static void Set(const BoundObject& self, const utf8_string& value){ 13 | if (!self.obj->GetSettings().Has($setting)){ 14 | throw ValueError("That object does not support $prettyname."); 15 | } 16 | 17 | auto cmd = change_setting_command(self.obj, $setting, value); 18 | self.ctx->RunCommand(*self.canvas, std::move(cmd), self.frameId); 19 | } 20 | }; 21 | -------------------------------------------------------------------------------- /python/generate/templates/settings-bool.txt: -------------------------------------------------------------------------------- 1 | struct settings_$name{ 2 | // From $$file 3 | 4 | static bool Get(Settings& self){ 5 | if (!self.Has($setting)){ 6 | throw ValueError("$prettyname not set."); 7 | } 8 | else{ 9 | return self.Get($setting); 10 | } 11 | } 12 | 13 | static void Set(Settings& self, bool value){ 14 | self.Set($setting, value); 15 | } 16 | }; 17 | -------------------------------------------------------------------------------- /python/generate/templates/settings-color.txt: -------------------------------------------------------------------------------- 1 | struct settings_$name{ 2 | // From $$file 3 | 4 | static Paint Get(Settings& self){ 5 | if (!self.Has($setting)){ 6 | throw ValueError("$prettyname not set."); 7 | } 8 | else{ 9 | return self.Get($setting); 10 | } 11 | } 12 | 13 | static void Set(Settings& self, const Paint& value){ 14 | self.Set($setting, value); 15 | } 16 | }; 17 | -------------------------------------------------------------------------------- /python/generate/templates/settings-float.txt: -------------------------------------------------------------------------------- 1 | struct settings_$name{ 2 | // From $$file 3 | 4 | static coord Get(Settings& self){ 5 | if (!self.Has($setting)){ 6 | throw ValueError("$prettyname not set."); 7 | } 8 | else{ 9 | return self.Get($setting); 10 | } 11 | } 12 | 13 | static void Set(Settings& self, coord value){ 14 | if (value < $min_value || $max_value < value){ 15 | throw ValueError("Argument outside range [$min_value, $max_value]."); 16 | } 17 | self.Set($setting, value); 18 | } 19 | }; 20 | -------------------------------------------------------------------------------- /python/generate/templates/settings-int.txt: -------------------------------------------------------------------------------- 1 | struct settings_$name{ 2 | // From $$file 3 | 4 | static int Get(Settings& self){ 5 | if (!self.Has($setting)){ 6 | throw ValueError("$prettyname not set."); 7 | } 8 | else{ 9 | return self.Get($setting); 10 | } 11 | } 12 | 13 | static void Set(Settings& self, 14 | const StaticBoundedInt<$min_value, $max_value>& value) 15 | { 16 | self.Set($setting, value.GetValue()); 17 | } 18 | }; 19 | -------------------------------------------------------------------------------- /python/generate/templates/settings-property.txt: -------------------------------------------------------------------------------- 1 | PROPERTY_FORWARDER(settings_$name, "$prettyname", "$doc_str"), // From $$file 2 | -------------------------------------------------------------------------------- /python/generate/templates/settings-string-to-int.txt: -------------------------------------------------------------------------------- 1 | struct settings_$name{ 2 | // From $$file 3 | 4 | static utf8_string Get(Settings& self){ 5 | if (!self.Has($setting)){ 6 | throw ValueError("$prettyname not set."); 7 | } 8 | int i_value = to_int(self.Get($setting)); 9 | const char* s_value = nullptr; 10 | $int_to_string 11 | return utf8_string(s_value); 12 | } 13 | 14 | static void Set(Settings& self, const utf8_string& s_value){ 15 | $string_to_int 16 | self.Set($setting, value); 17 | } 18 | }; 19 | -------------------------------------------------------------------------------- /python/generate/templates/settings-string.txt: -------------------------------------------------------------------------------- 1 | struct settings_$name{ 2 | // From $$file 3 | 4 | static utf8_string Get(Settings& self){ 5 | if (!self.Has($setting)){ 6 | throw ValueError("$prettyname not set."); 7 | } 8 | else{ 9 | return self.Get($setting); 10 | } 11 | } 12 | 13 | static void Set(Settings& self, const utf8_string& value){ 14 | self.Set($setting, value); 15 | } 16 | }; 17 | -------------------------------------------------------------------------------- /python/generate/templates/shape-bool.txt: -------------------------------------------------------------------------------- 1 | struct Shape_property_$name{ 2 | // From $$file 3 | 4 | static bool Get(Object& self){ 5 | const Settings& settings = self.GetSettings(); 6 | if (!settings.Has($setting)){ 7 | throw ValueError("That object does not support $prettyname."); 8 | } 9 | return settings.Get($setting); 10 | } 11 | 12 | static void Set(Object& self, bool value){ 13 | if (!self.GetSettings().Has($setting)){ 14 | throw ValueError("That object does not support $prettyname."); 15 | } 16 | 17 | self.Set($setting, value); 18 | } 19 | }; 20 | -------------------------------------------------------------------------------- /python/generate/templates/shape-color.txt: -------------------------------------------------------------------------------- 1 | struct Shape_property_$name{ 2 | // From $$file 3 | 4 | static Paint Get(Object& self){ 5 | const Settings& settings = self.GetSettings(); 6 | if (!settings.Has($setting)){ 7 | throw ValueError("That object does not support $prettyname."); 8 | } 9 | return settings.Get($setting); 10 | } 11 | 12 | static void Set(Object& self, const Paint& value){ 13 | if (!self.GetSettings().Has($setting)){ 14 | throw ValueError("That object does not support $prettyname."); 15 | } 16 | 17 | self.Set($setting, value); 18 | } 19 | }; 20 | -------------------------------------------------------------------------------- /python/generate/templates/shape-float.txt: -------------------------------------------------------------------------------- 1 | struct Shape_property_$name{ 2 | // From $$file 3 | 4 | static coord Get(Object& self){ 5 | const Settings& settings = self.GetSettings(); 6 | if (!settings.Has($setting)){ 7 | throw ValueError("That object does not support $prettyname."); 8 | } 9 | return settings.Get($setting); 10 | } 11 | 12 | static void Set(Object& self, coord value){ 13 | if (!self.GetSettings().Has($setting)){ 14 | throw ValueError("That object does not support $prettyname."); 15 | } 16 | 17 | if (value < $min_value || $max_value < value){ 18 | throw ValueError("Argument outside range [$min_value, $max_value]."); 19 | } 20 | 21 | self.Set($setting, value); 22 | } 23 | }; 24 | -------------------------------------------------------------------------------- /python/generate/templates/shape-int.txt: -------------------------------------------------------------------------------- 1 | struct Shape_property_$name{ 2 | // From $$file 3 | 4 | static int Get(Object& self){ 5 | const Settings& settings = self.GetSettings(); 6 | if (!settings.Has($setting)){ 7 | throw ValueError("That object does not support $prettyname."); 8 | } 9 | return settings.Get($setting); 10 | } 11 | 12 | static void Set(Object& self, 13 | const StaticBoundedInt<$min_value, $max_value>& value) 14 | { 15 | if (!self.GetSettings().Has($setting)){ 16 | throw ValueError("That object does not support $prettyname."); 17 | } 18 | 19 | self.Set($setting, value.GetValue()); 20 | } 21 | }; 22 | -------------------------------------------------------------------------------- /python/generate/templates/shape-property.txt: -------------------------------------------------------------------------------- 1 | PROPERTY_FORWARDER(Shape_property_$name, "$prettyname", "$doc_str"), // from $$file 2 | -------------------------------------------------------------------------------- /python/generate/templates/shape-string-to-int.txt: -------------------------------------------------------------------------------- 1 | struct Shape_property_$name{ 2 | // From $$file 3 | 4 | static utf8_string Get(Object& self){ 5 | const Settings& settings = self.GetSettings(); 6 | if (!settings.Has($setting)){ 7 | throw ValueError("That object does not support $prettyname."); 8 | } 9 | int i_value = to_int(settings.Get($setting)); 10 | const char* s_value = nullptr; 11 | $int_to_string 12 | return utf8_string(s_value); 13 | } 14 | 15 | static void Set(Object& self, const utf8_string& s_value){ 16 | if (!self.GetSettings().Has($setting)){ 17 | throw ValueError("That object does not support $prettyname."); 18 | } 19 | 20 | $string_to_int 21 | 22 | self.Set($setting, value); 23 | } 24 | }; 25 | -------------------------------------------------------------------------------- /python/generate/templates/shape-string.txt: -------------------------------------------------------------------------------- 1 | struct Shape_property_$name{ 2 | // From $$file 3 | 4 | static utf8_string Get(Object& self){ 5 | const Settings& settings = self.GetSettings(); 6 | if (!settings.Has($setting)){ 7 | throw ValueError("That object does not support $prettyname."); 8 | } 9 | return settings.Get($setting); 10 | } 11 | 12 | static void Set(Object& self, const utf8_string& value){ 13 | if (!self.GetSettings().Has($setting)){ 14 | throw ValueError("That object does not support $prettyname."); 15 | } 16 | 17 | self.Set($setting, value); 18 | } 19 | }; 20 | -------------------------------------------------------------------------------- /tests/.gitignore: -------------------------------------------------------------------------------- 1 | out 2 | run-benchmarks 3 | run-gui-tests 4 | run-image-tests 5 | run-unit-tests 6 | config.ini 7 | tracebacks.log 8 | *.manifest 9 | *.exp 10 | *.lib 11 | -------------------------------------------------------------------------------- /tests/benchmarks/.gitignore: -------------------------------------------------------------------------------- 1 | gen -------------------------------------------------------------------------------- /tests/benchmarks/bench-color-counting.cpp: -------------------------------------------------------------------------------- 1 | // -*- coding: us-ascii-unix -*- 2 | #include "test-sys/bench.hh" 3 | #include "tests/test-util/file-handling.hh" 4 | #include "bitmap/color-counting.hh" 5 | 6 | const int REPS = 5; 7 | namespace { 8 | faint::color_counts_t out; 9 | } 10 | 11 | void bench_color_counting(){ 12 | using namespace faint; 13 | auto bmp = load_test_image(FileName("gauss-source.png")); 14 | { 15 | color_counts_t colors; 16 | timed("count_colors", REPS, [&](){add_color_counts(bmp, colors);}); 17 | out = colors; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /tests/gui-tests/stubs.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | // Stubs required for linking the GUI test 6 | 7 | namespace faint{ 8 | 9 | } // namespace 10 | 11 | namespace test{ 12 | // Some things I need to be able to link the test utils. 13 | // FIXME: Try getting rid of at least TEST_FAILED and TEST_OUT 14 | bool TEST_FAILED = false; 15 | std::stringstream TEST_OUT; 16 | } 17 | std::string get_test_name(){ 18 | return "GuiTest"; 19 | } 20 | -------------------------------------------------------------------------------- /tests/image-tests/.gitignore: -------------------------------------------------------------------------------- 1 | gen -------------------------------------------------------------------------------- /tests/py_tests/test_extra/test_tesseract.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | import os 5 | import unittest 6 | import faint.extra.tesseract as tesseract 7 | from py_tests import make_test_dir, test_data_dir 8 | from faint import read_png 9 | from faint.image import Pimage 10 | 11 | class TestTesseract(unittest.TestCase): 12 | 13 | def test_tesseract(self): 14 | src = os.path.join(test_data_dir(), "tesseract-test.png") 15 | bmp, meta = read_png(src) 16 | img = Pimage(20, 20) 17 | img.background = bmp 18 | temp_dir = make_test_dir(self) 19 | 20 | ocr_text = tesseract.to_text(temp_dir, img).strip() 21 | self.assertEqual(ocr_text, "Hello world") 22 | -------------------------------------------------------------------------------- /tests/py_tests/test_faint/paths.py: -------------------------------------------------------------------------------- 1 | def get_test_out_path(): 2 | return 3 | -------------------------------------------------------------------------------- /tests/py_tests/test_faint/test_image.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | import unittest 5 | from faint import Image, FrameProps, ImageProps 6 | 7 | class TestImage(unittest.TestCase): 8 | 9 | def test_init(self): 10 | # Fixme: Add proper Image constructor. 11 | p = ImageProps() 12 | f = p.add_frame(200, 300) 13 | i = Image(f) 14 | self.assertEqual(i.get_size(), (200, 300)) 15 | self.assertEqual(i.color_count(), 1) 16 | 17 | i.set_pixel((0,0), (123,42,50)) 18 | self.assertEqual(i.color_count(), 2) 19 | 20 | self.assertEqual(i.get_pixel(0,0), (123,42,50, 255)) 21 | 22 | i.desaturate() 23 | self.assertEqual(i.get_pixel(0,0), (71,71,71, 255)) 24 | self.assertEqual(i.color_count(), 2) 25 | -------------------------------------------------------------------------------- /tests/py_tests/test_faint/test_pattern.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | import unittest 5 | from faint import Bitmap, Pattern 6 | 7 | class TestPattern(unittest.TestCase): 8 | 9 | def test_init(self): 10 | bmp = Bitmap((10,10), (255,0,255)); 11 | p = Pattern(bmp) 12 | -------------------------------------------------------------------------------- /tests/test-data/12x6-8bipp.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/12x6-8bipp.bmp -------------------------------------------------------------------------------- /tests/test-data/13x7-8bipp-gray.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/13x7-8bipp-gray.bmp -------------------------------------------------------------------------------- /tests/test-data/24bipp-256x256.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/24bipp-256x256.cur -------------------------------------------------------------------------------- /tests/test-data/24bipp-6x6.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/24bipp-6x6.cur -------------------------------------------------------------------------------- /tests/test-data/24bipp-key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/24bipp-key.png -------------------------------------------------------------------------------- /tests/test-data/24bipp.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/24bipp.ico -------------------------------------------------------------------------------- /tests/test-data/32-bipp_8-bit-alpha_no-palette-BI_RGB.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/32-bipp_8-bit-alpha_no-palette-BI_RGB.ico -------------------------------------------------------------------------------- /tests/test-data/65x65-24bipp-key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/65x65-24bipp-key.png -------------------------------------------------------------------------------- /tests/test-data/65x65-24bipp.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/65x65-24bipp.bmp -------------------------------------------------------------------------------- /tests/test-data/86-68-key-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/86-68-key-1.png -------------------------------------------------------------------------------- /tests/test-data/86-68-key-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/86-68-key-2.png -------------------------------------------------------------------------------- /tests/test-data/86-68-key-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/86-68-key-3.png -------------------------------------------------------------------------------- /tests/test-data/86-68-key-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/86-68-key-4.png -------------------------------------------------------------------------------- /tests/test-data/86-68.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/86-68.gif -------------------------------------------------------------------------------- /tests/test-data/alpha-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/alpha-128.png -------------------------------------------------------------------------------- /tests/test-data/bicubic-key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/bicubic-key.png -------------------------------------------------------------------------------- /tests/test-data/bicubic-source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/bicubic-source.png -------------------------------------------------------------------------------- /tests/test-data/bilinear-key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/bilinear-key.png -------------------------------------------------------------------------------- /tests/test-data/boundary-fill-key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/boundary-fill-key.png -------------------------------------------------------------------------------- /tests/test-data/boundary-fill-source.hh: -------------------------------------------------------------------------------- 1 | #include "bitmap/color.hh" 2 | #include "geo/int-point.hh" 3 | 4 | namespace test::boundary_fill_source{ 5 | 6 | // Constants for use with boundary-fill-source.png 7 | const char* fileName = "boundary-fill-source.png"; 8 | const char* fileNameKey = "boundary-fill-key.png"; 9 | constexpr faint::Color borderColor(0, 0, 0); 10 | constexpr faint::Color keyFillColor(255, 255, 0); 11 | constexpr faint::IntPoint fillOrigin(185, 185); 12 | 13 | } // namespace 14 | -------------------------------------------------------------------------------- /tests/test-data/boundary-fill-source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/boundary-fill-source.png -------------------------------------------------------------------------------- /tests/test-data/gauss-dithered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/gauss-dithered.png -------------------------------------------------------------------------------- /tests/test-data/gauss-source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/gauss-source.png -------------------------------------------------------------------------------- /tests/test-data/gradients.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/gradients.png -------------------------------------------------------------------------------- /tests/test-data/scale-nearest-key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/scale-nearest-key.png -------------------------------------------------------------------------------- /tests/test-data/scale-nearest-source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/scale-nearest-source.png -------------------------------------------------------------------------------- /tests/test-data/square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/square.png -------------------------------------------------------------------------------- /tests/test-data/svg/group-element.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | 12 | 13 | 16 | 17 | 20 | 21 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /tests/test-data/svg/key/group-element.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/svg/key/group-element.png -------------------------------------------------------------------------------- /tests/test-data/svg/key/group-transform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/svg/key/group-transform.png -------------------------------------------------------------------------------- /tests/test-data/svg/key/image-element.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/svg/key/image-element.png -------------------------------------------------------------------------------- /tests/test-data/svg/key/percentage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/svg/key/percentage.png -------------------------------------------------------------------------------- /tests/test-data/svg/key/svg-element-viewbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/svg/key/svg-element-viewbox.png -------------------------------------------------------------------------------- /tests/test-data/svg/key/svg-element.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/svg/key/svg-element.png -------------------------------------------------------------------------------- /tests/test-data/svg/key/text-anchor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/svg/key/text-anchor.png -------------------------------------------------------------------------------- /tests/test-data/svg/svg-element-viewbox.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | 10 | 11 | 18 | 19 | 22 | 23 | -------------------------------------------------------------------------------- /tests/test-data/svg/svg-element.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | 16 | 17 | 24 | 25 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /tests/test-data/tesseract-test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukas-ke/faint-graphics-editor/c475123c03311042877740d018f314cd667d10d5/tests/test-data/tesseract-test.png -------------------------------------------------------------------------------- /tests/test-util/bitmap-test-util.hh: -------------------------------------------------------------------------------- 1 | // -*- coding: us-ascii-unix -* 2 | #ifndef FAINT_TEST_BITMAP_TEST_UTIL_HH 3 | #define FAINT_TEST_BITMAP_TEST_UTIL_HH 4 | 5 | namespace faint{ 6 | 7 | class Color; 8 | class Bitmap; 9 | class IntRect; 10 | 11 | bool is_uniformly(const Color&, const Bitmap&); 12 | bool is_uniformly(const Color&, const Bitmap&, const IntRect&); 13 | bool equal(const Bitmap&, const Bitmap&); 14 | 15 | } // namespace 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /tests/test-util/file-handling.hh: -------------------------------------------------------------------------------- 1 | // -*- coding: us-ascii-unix -*- 2 | 3 | #ifndef FAINT_TEST_FILE_HANDLING_HH 4 | #define FAINT_TEST_FILE_HANDLING_HH 5 | #include "bitmap/bitmap.hh" 6 | #include "util-wx/file-path.hh" 7 | 8 | namespace faint{ 9 | 10 | FilePath get_test_save_path(const FileName&); 11 | FilePath save_test_image(const Bitmap&, const FileName&); 12 | 13 | FilePath get_test_load_path(const FileName&); 14 | Bitmap load_test_image(const FileName&); 15 | 16 | class ImageTable; 17 | void save_image_table(const ImageTable&); 18 | 19 | FileName suffix_u8_chars(const FileName&); 20 | 21 | } // namespace 22 | 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /tests/test-util/print-optional.hh: -------------------------------------------------------------------------------- 1 | // -*- coding: us-ascii-unix -*- 2 | #ifndef FAINT_TEST_PRINT_OPTIONAL_HH 3 | #define FAINT_TEST_PRINT_OPTIONAL_HH 4 | #include 5 | #include "util/optional.hh" 6 | 7 | namespace faint{ 8 | 9 | template 10 | std::ostream& operator<<(std::ostream& o, const Optional& opt){ 11 | opt.Visit( 12 | [&](const T& value){ 13 | o << "{" << value << "}"; 14 | }, 15 | [&](){ 16 | o << "{}"; 17 | }); 18 | return o; 19 | } 20 | 21 | } // namespace 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /tests/test-util/wx-test-util.cpp: -------------------------------------------------------------------------------- 1 | // -*- coding: us-ascii-unix -*- 2 | #include "wx/bitmap.h" 3 | #include "wx/rawbmp.h" 4 | #include "wx/dcmemory.h" 5 | #include "bitmap/color.hh" 6 | #include "tests/test-util/wx-test-util.hh" 7 | #include "util-wx/convert-wx.hh" 8 | 9 | namespace faint{ 10 | 11 | using PixelData = wxPixelData; 12 | Color get_color_wxBitmap(wxBitmap& bmp, int x, int y){ 13 | PixelData pd(bmp); 14 | assert(pd); 15 | PixelData::Iterator p = pd; 16 | p.OffsetY(pd, y); 17 | for (int i = 0; i != x; i++){ 18 | p++; 19 | } 20 | 21 | return Color(p.Red(), p.Green(), p.Blue(), p.Alpha()); 22 | } 23 | 24 | } // namespace 25 | -------------------------------------------------------------------------------- /tests/test-util/wx-test-util.hh: -------------------------------------------------------------------------------- 1 | // -*- coding: us-ascii-unix -*- 2 | #ifndef FAINT_TEST_WX_TEST_UTIL_HH 3 | #define FAINT_TEST_WX_TEST_UTIL_HH 4 | 5 | class wxBitmap; 6 | 7 | namespace faint{ 8 | 9 | class Color; 10 | Color get_color_wxBitmap(wxBitmap& , int x, int y); 11 | 12 | } // namespace 13 | 14 | 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /tests/unit-tests/.gitignore: -------------------------------------------------------------------------------- 1 | gen -------------------------------------------------------------------------------- /tests/unit-tests/test-geo-func.cpp: -------------------------------------------------------------------------------- 1 | // -*- coding: us-ascii-unix -*- 2 | #include "test-sys/test.hh" 3 | #include "tests/test-util/print-objects.hh" 4 | #include "geo/geo-func.hh" 5 | #include "geo/point.hh" 6 | #include "geo/scale.hh" 7 | 8 | void test_geo_func(){ 9 | using namespace faint; 10 | 11 | { // scale_point 12 | using Pt = Point; 13 | using Sc = Scale; 14 | 15 | EQUAL(scale_point(Pt{1.0, 1.0}, Sc{2.0, 4.0}, Pt{2.0, 2.0}), 16 | Pt(0.0, -2.0)); 17 | 18 | EQUAL(scale_point(Pt{2.0, 2.0}, Sc{2.0, 4.0}, Pt{2.0, 2.0}), 19 | Pt(2.0, 2.0)); 20 | 21 | EQUAL(scale_point(Pt{3.0, 3.0}, Sc{2.0, 4.0}, Pt{2.0, 2.0}), 22 | Pt(4.0, 6.0)); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /tests/unit-tests/test-int-point.cpp: -------------------------------------------------------------------------------- 1 | // -*- coding: us-ascii-unix -*- 2 | #include 3 | #include "test-sys/test.hh" 4 | #include "tests/test-util/print-objects.hh" 5 | #include "geo/int-point.hh" 6 | 7 | void test_int_point(){ 8 | using namespace faint; 9 | 10 | #ifdef _MSC_VER // C++14: Not supported by clang 3.5.0 with libstdc++ 11 | static_assert(std::is_trivially_copyable_v); 12 | #endif 13 | 14 | IntPoint p0; 15 | EQUAL(p0, IntPoint(0,0)); 16 | VERIFY(fully_positive(p0)); 17 | EQUAL(max_coords(IntPoint(-1,-2), IntPoint(0,0)), IntPoint(0,0)); 18 | } 19 | -------------------------------------------------------------------------------- /tests/unit-tests/test-limits.cpp: -------------------------------------------------------------------------------- 1 | // -*- coding: us-ascii-unix -*- 2 | #include 3 | #include "test-sys/test.hh" 4 | #include "geo/limits.hh" 5 | 6 | void test_limits(){ 7 | using namespace faint; 8 | { // can_represent 9 | VERIFY(can_represent(std::numeric_limits::min())); 10 | VERIFY(can_represent(std::numeric_limits::max())); 11 | VERIFY(can_represent(10)); 12 | VERIFY(can_represent(uint32_t(10))); 13 | NOT(can_represent(std::numeric_limits::max())); 14 | NOT(can_represent(-1)); 15 | } 16 | 17 | { // convert 18 | int32_t v2 = convert(uint16_t(12)); 19 | EQUAL(v2, 12); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /tests/unit-tests/test-point-range.cpp: -------------------------------------------------------------------------------- 1 | // -*- coding: us-ascii-unix -*- 2 | #include 3 | #include "test-sys/test.hh" 4 | 5 | #include "geo/point-range.hh" 6 | 7 | void test_point_range(){ 8 | using namespace faint; 9 | 10 | const std::vector key = { 11 | {2,1}, {3,1}, {4,1}, 12 | {2,2}, {3,2}, {4,2}, 13 | {2,3}, {3,3}, {4,3}}; 14 | 15 | const point_range ptRange({2,1},{4,3}); 16 | 17 | { // Test iterator construction 18 | 19 | const std::vector v(begin(ptRange), end(ptRange)); 20 | VERIFY(key == v); 21 | } 22 | 23 | { // Test/illustrate loop usage 24 | std::vector v; 25 | for (auto pt : ptRange){ 26 | v.push_back(pt); 27 | } 28 | VERIFY(key == v); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /tests/unit-tests/test-range-iter.cpp: -------------------------------------------------------------------------------- 1 | // -*- coding: us-ascii-unix -*- 2 | #include "test-sys/test.hh" 3 | #include "bitmap/color.hh" 4 | #include "util/range-iter.hh" 5 | #include "util/make-vector.hh" 6 | 7 | void test_range_iter(){ 8 | using namespace faint; 9 | auto v = make_vector(make_closed_range(0,255), grayscale_rgb); 10 | EQUAL(v.size(), 256); 11 | VERIFY(v[0] == ColRGB(0,0,0)); 12 | VERIFY(v[128] == ColRGB(128,128,128)); 13 | VERIFY(v[255] == ColRGB(255,255,255)); 14 | } 15 | -------------------------------------------------------------------------------- /tests/unit-tests/test-rotated-size.cpp: -------------------------------------------------------------------------------- 1 | // -*- coding: us-ascii-unix -*- 2 | #include "test-sys/test.hh" 3 | #include "geo/rotated-size.hh" 4 | #include "tests/test-util/print-objects.hh" 5 | 6 | void test_rotated_size(){ 7 | using namespace faint; 8 | 9 | auto newSize = get_rotated_size(Angle::Deg(45), IntSize(20, 20)); 10 | KNOWN_INEQUAL(newSize, IntSize(30, 30)); // Becomes 30, 29 11 | } 12 | -------------------------------------------------------------------------------- /tests/unit-tests/test-scale-bicubic.cpp: -------------------------------------------------------------------------------- 1 | // -*- coding: us-ascii-unix -*- 2 | #include "test-sys/test.hh" 3 | #include "tests/test-util/file-handling.hh" 4 | #include "bitmap/scale-bicubic.hh" 5 | #include "geo/geo-func.hh" 6 | #include "geo/scale.hh" 7 | 8 | void test_scale_bicubic(){ 9 | using namespace faint; 10 | const Bitmap src = load_test_image(FileName("bicubic-source.png")); 11 | const Bitmap key = load_test_image(FileName("bicubic-key.png")); 12 | Bitmap dst = scale_bicubic(src, rounded(src.GetSize() * Scale(2.0, 3.0))); 13 | VERIFY(dst == key); 14 | } 15 | -------------------------------------------------------------------------------- /tests/unit-tests/test-scale-bilinear.cpp: -------------------------------------------------------------------------------- 1 | // -*- coding: us-ascii-unix -*- 2 | #include "test-sys/test.hh" 3 | #include "tests/test-util/file-handling.hh" 4 | #include "geo/geo-func.hh" 5 | #include "geo/scale.hh" 6 | 7 | #include "bitmap/scale-bilinear.hh" 8 | 9 | void test_scale_bilinear(){ 10 | using namespace faint; 11 | const Bitmap src = load_test_image(FileName("bicubic-source.png")); 12 | const Bitmap key = load_test_image(FileName("bilinear-key.png")); 13 | Bitmap dst = scale_bilinear(src, rounded(src.GetSize() * Scale(2.0, 3.0))); 14 | VERIFY(dst == key); 15 | } 16 | -------------------------------------------------------------------------------- /tests/unit-tests/test-scale-nearest.cpp: -------------------------------------------------------------------------------- 1 | // -*- coding: us-ascii-unix -*- 2 | #include "test-sys/test.hh" 3 | #include "tests/test-util/bitmap-test-util.hh" 4 | #include "tests/test-util/file-handling.hh" 5 | 6 | #include "bitmap/scale-nearest.hh" 7 | #include "geo/geo-func.hh" 8 | #include "geo/scale.hh" 9 | 10 | void test_scale_nearest(){ 11 | using namespace faint; 12 | const Bitmap src = load_test_image(FileName("scale-nearest-source.png")); 13 | const Bitmap key = load_test_image(FileName("scale-nearest-key.png")); 14 | const Bitmap dst = scale_nearest(src, rounded(src.GetSize() * Scale(2.0, 3.0))); 15 | VERIFY(equal(dst, key)); 16 | VERIFY(equal(scale_nearest(src, 2), 17 | scale_nearest(src, rounded(src.GetSize() * Scale(2.0))))); 18 | } 19 | -------------------------------------------------------------------------------- /tests/unit-tests/test-size.cpp: -------------------------------------------------------------------------------- 1 | // -*- coding: us-ascii-unix -*- 2 | #include 3 | #include "test-sys/test.hh" 4 | #include "geo/size.hh" 5 | 6 | void test_size(){ 7 | using namespace faint; 8 | 9 | { 10 | // area_less 11 | const auto maxCoord = std::numeric_limits::max(); 12 | NOT(area_less(Size(10, 10), 100)); 13 | VERIFY(area_less(Size(10, 10), 100.1)); 14 | 15 | NOT(area_less(Size(maxCoord, maxCoord), maxCoord)); 16 | NOT(area_less(Size(maxCoord, 1), maxCoord)); 17 | VERIFY(area_less(Size(maxCoord, 0.99), maxCoord)); 18 | NOT(area_less(Size(maxCoord, 1.0), maxCoord)); 19 | 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /tests/unit-tests/test-unsharp-mask.cpp: -------------------------------------------------------------------------------- 1 | // -*- coding: us-ascii-unix -*- 2 | #include "test-sys/test.hh" 3 | #include "bitmap/bitmap.hh" 4 | #include "bitmap/color.hh" 5 | #include "bitmap/filter.hh" 6 | #include "tests/test-util/file-handling.hh" 7 | 8 | void test_unsharp_mask(){ 9 | using namespace faint; 10 | const auto bmp = 11 | unsharp_mask_fast(load_test_image(FileName("alpha-128.png")), 2.0); 12 | 13 | // Verify that alpha is not lost 14 | VERIFY(translucent(get_color_raw(bmp, 0, 0))); 15 | } 16 | -------------------------------------------------------------------------------- /tests/unit-tests/test-zoom-level.cpp: -------------------------------------------------------------------------------- 1 | // -*- coding: us-ascii-unix -*- 2 | #include "test-sys/test.hh" 3 | #include "util/zoom-level.hh" 4 | 5 | using namespace faint; 6 | 7 | void test_zoom_level(){ 8 | ZoomLevel zoom; 9 | VERIFY(zoom.At100()); 10 | VERIFY(!zoom.AtMax()); 11 | VERIFY(!zoom.AtMin()); 12 | EQUAL(zoom.GetScaleFactor(), 1.0); 13 | 14 | VERIFY(zoom.Next()); 15 | VERIFY(!zoom.At100()); 16 | EQUAL(zoom.GetPercentage(), 200); 17 | EQUAL(zoom.GetScaleFactor(), 2.0); 18 | VERIFY(zoom.Change(ZoomLevel::NEXT)); 19 | 20 | zoom.SetApproximate(2.3); 21 | EQUAL(zoom.GetPercentage(), 200); 22 | 23 | zoom.Change(ZoomLevel::DEFAULT); 24 | EQUAL(zoom.GetPercentage(), 100); 25 | VERIFY(zoom.At100()); 26 | } 27 | --------------------------------------------------------------------------------