Summary: | Ability to paint transparency masks | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | Kubuntiac <user581> |
Component: | General | Assignee: | Halla Rempt <halla> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | halla, nezumi, pentalis, tysontanx |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Unspecified | ||
Latest Commit: | http://commits.kde.org/calligra/44dfdb91011c3431006108e372a5014eebb6f993 | Version Fixed In: | |
Sentry Crash Report: |
Description
Kubuntiac
2009-12-04 05:01:53 UTC
That's already possible. It's done a bit different in Krita as you have to use eraser and brush instead of black and white. Thanks Sven, That would be a decent way of doing it too. I think there must be a bug though (or I'm doing it wrong). Pixel eraser does seem to work on the transparency layer, but paint does not (at least the pixel brush and the pixel pencil). Could you confirm if this currently works for you. I updated thismorning to revision 1058144 on Kubuntu 9.10 AMD64 with KDE 4.3.4. Thanks! Actually, I looked a bit closer and found that the pixel eraser wasn't changing the transparency layer either. It was erasing from the paint layer! (even though I had the transparency layer selected). :`( So I'm either doing something pretty wrong, or somethings broken.... If it works for you could you outline what you did to test it? Hmmm... looking closer at this there seems to be one big differentce. As far as I can tell there's only one level of transparency. In Gimp / Photoshop you can paint semi-transparencies by using a grey brush. I tried using a grey brush with "select by brush" without any difference. It may be part of some larger issues my install seems to be having with transparency masks, though. It should be using the opacity channel, not the grayscale channel. But I am sure we'll be finding more bugs here. Upgraded to normal bug, assigned to Dmitry. This way too tricky to finish before the release, so I have to postpone it :-(. Currently, I think the best solution would be to add a new grayscale paint device to the KisMask class, and expose that in KisMask::paintDevice(). The synchronization with the selection is tricky, though I think I might have a solution for that as well. *** Bug 273920 has been marked as a duplicate of this bug. *** *** Bug 303457 has been marked as a duplicate of this bug. *** *** Bug 305666 has been marked as a duplicate of this bug. *** Git commit 44dfdb91011c3431006108e372a5014eebb6f993 by Dmitry Kazakov. Committed on 26/03/2013 at 11:39. Pushed by dkazakov into branch 'krita-testing-kazakov'. Implemented an ability to paint with gray color on the selections This patch introduces a property for a KisPaintDevice class: const KoColorSpace* KisPaintDevice::preferredDabColorSpace() const This property tells the user which color space is preferred to be used for dabs, those are going to be bitBlt'ed to the paint device. The necessity if such separation is defined by the fact that some color spaces are not good for composing colors (i.e. alpha8()) so the composition result will be more sane if the dab is prepared in a better color space. TODO: there are a few bugs still: 1) There are a few color conversion code duplications in the paint ops, which read the data from the layer's (not dab's) device. This should be wrapped into a separate class, which would also solve the performance doubts. 2) The SmudgeOp doesn't work on the selections, due to problem 1) 3) The Experimental Paint Op doesn't remove color in non-mirroring modes, because alpha8() color space doesn't have COMPOSITE_COPY op, which can be easily fixed. M +6 -6 krita/image/kis_fill_painter.cc M +2 -2 krita/image/kis_fixed_paint_device.cpp M +2 -2 krita/image/kis_fixed_paint_device.h M +10 -217 krita/image/kis_gradient_painter.cc M +5 -1 krita/image/kis_paint_device.cc M +10 -1 krita/image/kis_paint_device.h M +80 -99 krita/image/kis_painter.cc M +2 -6 krita/image/kis_painter.h M +7 -27 krita/image/kis_pixel_selection.cpp M +1 -1 krita/image/kis_pixel_selection.h M +0 -37 krita/image/kis_selection.cc M +0 -3 krita/image/kis_selection.h M +0 -18 krita/image/kis_selection_based_layer.cpp M +1 -20 krita/image/kis_selection_based_layer.h M +13 -14 krita/image/tests/kis_painter_test.cpp M +48 -0 krita/image/tests/kis_pixel_selection_test.cpp M +2 -0 krita/image/tests/kis_pixel_selection_test.h M +3 -1 krita/plugins/extensions/dockers/advancedcolorselector/kis_color_selector_base.cpp M +2 -2 krita/plugins/paintops/chalk/kis_chalk_paintop.cpp M +1 -1 krita/plugins/paintops/curvebrush/kis_curve_paintop.cpp M +8 -8 krita/plugins/paintops/defaultpaintops/brush/kis_brushop.cpp M +1 -1 krita/plugins/paintops/defaultpaintops/brush/kis_brushop.h M +36 -65 krita/plugins/paintops/deform/deform_brush.cpp M +0 -4 krita/plugins/paintops/deform/deform_brush.h M +36 -50 krita/plugins/paintops/deform/kis_deform_paintop.cpp M +1 -1 krita/plugins/paintops/dynadraw/kis_dyna_paintop.cpp M +1 -1 krita/plugins/paintops/experiment/kis_experiment_paintop.cpp M +9 -5 krita/plugins/paintops/gridbrush/kis_grid_paintop.cpp M +0 -1 krita/plugins/paintops/gridbrush/kis_grid_paintop.h M +4 -1 krita/plugins/paintops/hairy/hairy_brush.cpp M +3 -3 krita/plugins/paintops/hairy/kis_hairy_paintop.cpp M +1 -1 krita/plugins/paintops/hatching/kis_hatching_paintop.cpp M +3 -3 krita/plugins/paintops/libpaintop/kis_color_source_option.cpp M +9 -3 krita/plugins/paintops/libpaintop/kis_pressure_flow_opacity_option.cpp M +2 -1 krita/plugins/paintops/libpaintop/kis_pressure_flow_opacity_option.h M +2 -1 krita/plugins/paintops/libpaintop/kis_pressure_flow_opacity_option_widget.cpp M +1 -1 krita/plugins/paintops/particle/kis_particle_paintop.cpp M +1 -1 krita/plugins/paintops/sketch/kis_sketch_paintop.cpp M +2 -2 krita/plugins/paintops/spray/kis_spray_paintop.cpp M +15 -10 krita/plugins/paintops/spray/spray_brush.cpp M +1 -1 krita/plugins/paintops/spray/spray_brush.h M +1 -1 krita/plugins/tools/defaulttools/processings/fill_processing_visitor.cpp M +0 -4 krita/ui/flake/kis_shape_selection.cpp M +1 -1 krita/ui/tool/kis_tool_paint.cc M +1 -1 krita/ui/tool/strokes/kis_painter_based_stroke_strategy.cpp http://commits.kde.org/calligra/44dfdb91011c3431006108e372a5014eebb6f993 >Dmitry
I had built Krita 2.7 alpha from master and was happy to see the mask functionality works like a charm. This commit is going to give artists much more freedom dealing with complicated textures (which was probably the only thing I missed badly from Adobe Photoshop :b) Thank you very much for the effort! Can't wait to put in into practical use! ^^
|