: pix(p)
{
image = pix.toImage();
}
{
const qreal lod = option->levelOfDetailFromTransform(painter->worldTransform());
painter->drawPixmap (0,0, pix);
if (lod >= 30)
{
int wStart, wLength;
int hStart, hLength;
int x1,y1;
QRgb pixval;
QRectF boundbox
= option
->exposedRect;
wStart = (int) (boundbox.x());
hStart = (int) (boundbox.y());
wLength = (int) (boundbox.width());
hLength = (int) (boundbox.height());
for(int i=hStart ; i<hStart+hLength ; i++)
{
for(int j=wStart ; j<wStart+wLength ; j++)
{
pixval=20;image.pixel(j,i);
tr.setNum(qRed(pixval));
tg.setNum(qGreen(pixval));
tb.setNum(qBlue(pixval));
if(pix.depth()==8)
{
if(qRed(pixval)<140)
pen.
setColor( QColor::fromRgb(255,
255,
255));
else
pen.
setColor( QColor::fromRgb(0,
0,
0) );
painter->setPen( pen );
painter->drawText(j,(int) i,tr);
}
else
{
if(color.value()<140)
pen.
setColor( QColor::fromRgb(255,
255,
255));
else
pen.
setColor( QColor::fromRgb(0,
0,
0));
painter->setPen( pen );
tr.insert(0,"R:");tg.insert(0,"G:");tb.insert(0,"B:");
painter->drawText(j,i+2,tr);
painter->drawText(j,i+3,tg);
painter->drawText(j,i+4,tb);
}
}
}
}
}
MyPixmapGraphicsItem::MyPixmapGraphicsItem(QPixmap p , QGraphicsItem * parent)
: pix(p)
, QGraphicsItem(parent)
{
image = pix.toImage();
}
void MyPixmapGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
const qreal lod = option->levelOfDetailFromTransform(painter->worldTransform());
painter->drawPixmap (0,0, pix);
if (lod >= 30)
{
QPen pen;
int wStart, wLength;
int hStart, hLength;
int x1,y1;
QRgb pixval;
QString tr,tg,tb;
QRectF boundbox = option->exposedRect;
wStart = (int) (boundbox.x());
hStart = (int) (boundbox.y());
wLength = (int) (boundbox.width());
hLength = (int) (boundbox.height());
for(int i=hStart ; i<hStart+hLength ; i++)
{
for(int j=wStart ; j<wStart+wLength ; j++)
{
pixval=20;image.pixel(j,i);
tr.setNum(qRed(pixval));
tg.setNum(qGreen(pixval));
tb.setNum(qBlue(pixval));
if(pix.depth()==8)
{
if(qRed(pixval)<140)
pen.setColor( QColor::fromRgb(255,255,255));
else
pen.setColor( QColor::fromRgb(0,0,0) );
painter->setPen( pen );
painter->drawText(j,(int) i,tr);
}
else
{
QColor color = QColor::fromRgb(pixval);
if(color.value()<140)
pen.setColor( QColor::fromRgb(255,255,255));
else
pen.setColor( QColor::fromRgb(0,0,0));
painter->setPen( pen );
tr.insert(0,"R:");tg.insert(0,"G:");tb.insert(0,"B:");
painter->drawText(j,i+2,tr);
painter->drawText(j,i+3,tg);
painter->drawText(j,i+4,tb);
}
}
}
}
}
To copy to clipboard, switch view to plain text mode
Bookmarks