17 m_imageOriginal (pixmapOriginal.toImage()),
18 m_rgbBackground (rgbBackground),
23 m_restartTimer.setSingleShot (
false);
24 connect (&m_restartTimer, SIGNAL (timeout ()),
this, SLOT (slotRestartTimeout()));
39 m_inputCommandQueue.push_back (command);
41 if (!m_restartTimer.isActive()) {
48 void DlgFilterWorker::slotRestartTimeout ()
50 if (m_inputCommandQueue.count() > 0) {
53 m_inputCommandQueue.clear ();
65 }
else if (m_xLeft < m_imageOriginal.width ()) {
69 if (xStop >= m_imageOriginal.width()) {
70 xStop = m_imageOriginal.width();
79 int processedWidth = xStop - m_xLeft;
80 QImage imageProcessed (processedWidth,
81 m_imageOriginal.height(),
82 QImage::Format_RGB32);
83 for (
int xFrom = m_xLeft, xTo = 0; (xFrom < xStop) && (m_inputCommandQueue.count() == 0); xFrom++, xTo++) {
84 for (
int y = 0; (y < m_imageOriginal.height ()) && (m_inputCommandQueue.count() == 0); y++) {
85 QColor pixel = m_imageOriginal.pixel (xFrom, y);
87 if (pixel.rgb() != m_rgbBackground) {
96 imageProcessed.setPixel (xTo, y, (isOn ?
97 QColor (Qt::black).rgb () :
98 QColor (Qt::white).rgb ()));
102 if (m_inputCommandQueue.count() == 0) {
105 m_xLeft += processedWidth;
108 if ((xStop < m_imageOriginal.width()) ||
109 (m_inputCommandQueue.count () > 0)) {