1 /* 2 * This file is part of Krita 3 * 4 * Copyright (c) 2006 Cyrille Berger <cberger@cberger.net> 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 2 of the License, or 9 * (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 */ 20 21 #ifndef KIS_UNSHARP_FILTER_H 22 #define KIS_UNSHARP_FILTER_H 23 24 #include "filter/kis_filter.h" 25 26 class KisUnsharpFilter : public KisFilter 27 { 28 public: 29 30 KisUnsharpFilter(); 31 32 void processImpl(KisPaintDeviceSP device, 33 const QRect& applyRect, 34 const KisFilterConfigurationSP config, 35 KoUpdater* progressUpdater 36 ) const override; 37 id()38 static inline KoID id() { 39 return KoID("unsharp", i18n("Unsharp Mask")); 40 } 41 42 KisConfigWidget * createConfigurationWidget(QWidget* parent, const KisPaintDeviceSP dev, bool useForMasks) const override; 43 KisFilterConfigurationSP defaultConfiguration() const override; 44 45 QRect changedRect(const QRect & rect, const KisFilterConfigurationSP _config, int lod) const override; 46 QRect neededRect(const QRect & rect, const KisFilterConfigurationSP _config, int lod) const override; 47 48 private: 49 void processLightnessOnly(KisPaintDeviceSP device, 50 const QRect &rect, 51 quint8 threshold, 52 qreal weights[2], 53 qreal factor, 54 const QBitArray &channelFlags, KoUpdater *progressUpdater) const; 55 56 void processRaw(KisPaintDeviceSP device, 57 const QRect &rect, 58 quint8 threshold, 59 qreal weights[2], 60 qreal factor, 61 const QBitArray &channelFlags, KoUpdater *progressUpdater) const; 62 }; 63 64 #endif 65