本文整理汇总了C++中QImage函数的典型用法代码示例。如果您正苦于以下问题:C++ QImage函数的具体用法?C++ QImage怎么用?C++ QImage使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了QImage函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: return
QImage FileFormat::readThumbnail(const QString& fileName) const
{
return (plug && load && thumb) ? plug->readThumbnail(fileName) : QImage();
}
示例2: QFileInfo
QImage XfigPlug::readThumbnail(QString fName)
{
QFileInfo fi = QFileInfo(fName);
baseFile = QDir::cleanPath(QDir::toNativeSeparators(fi.absolutePath()+"/"));
double w=0.0, h=0.0, x=0.0, y=0.0;
parseHeader(fName, x, y, w, h);
docX = x;
docY = y;
if (w == 0.0)
w = PrefsManager::instance()->appPrefs.docSetupPrefs.pageWidth;
if (h == 0.0)
h = PrefsManager::instance()->appPrefs.docSetupPrefs.pageHeight;
docWidth = w - x;
docHeight = h - y;
progressDialog = NULL;
m_Doc = new ScribusDoc();
m_Doc->setup(0, 1, 1, 1, 1, "Custom", "Custom");
m_Doc->setPage(docWidth, docHeight, 0, 0, 0, 0, 0, 0, false, false);
m_Doc->addPage(0);
m_Doc->setGUI(false, ScCore->primaryMainWindow(), 0);
baseX = m_Doc->currentPage()->xOffset();
baseY = m_Doc->currentPage()->yOffset();
Elements.clear();
CustColors.clear();
importedColors.insert(0, "Black");
importedColors.insert(1, "Blue");
importedColors.insert(2, "Green");
importedColors.insert(3, "Cyan");
importedColors.insert(4, "Red");
importedColors.insert(5, "Magenta");
importedColors.insert(6, "Yellow");
importedColors.insert(7, "White");
importedColors.insert(8, "Blue4");
importedColors.insert(9, "Blue3");
importedColors.insert(10, "Blue2");
importedColors.insert(11, "LtBlue");
importedColors.insert(12, "Green4");
importedColors.insert(13, "Green3");
importedColors.insert(14, "Green2");
importedColors.insert(15, "Cyan4");
importedColors.insert(16, "Cyan3");
importedColors.insert(17, "Cyan2");
importedColors.insert(18, "Red4");
importedColors.insert(19, "Red3");
importedColors.insert(20, "Red2");
importedColors.insert(21, "Magenta4");
importedColors.insert(22, "Magenta3");
importedColors.insert(23, "Magenta2");
importedColors.insert(24, "Brown4");
importedColors.insert(25, "Brown3");
importedColors.insert(26, "Brown2");
importedColors.insert(27, "Pink4");
importedColors.insert(28, "Pink3");
importedColors.insert(29, "Pink2");
importedColors.insert(30, "Pink");
importedColors.insert(31, "Gold");
CustColors.insert("Blue", ScColor(0, 0, 255));
CustColors.insert("Blue4", ScColor(0, 0, 144));
CustColors.insert("Blue3", ScColor(0, 0, 176));
CustColors.insert("Blue2", ScColor(0, 0, 208));
CustColors.insert("LtBlue", ScColor(135, 206, 255));
CustColors.insert("Cyan", ScColor(255, 0, 0, 0));
CustColors.insert("Cyan4", ScColor(0, 144, 144));
CustColors.insert("Cyan3", ScColor(0, 176, 176));
CustColors.insert("Cyan2", ScColor(0, 208, 208));
CustColors.insert("Green", ScColor(255, 0, 255, 0));
CustColors.insert("Green4", ScColor(0, 144, 0));
CustColors.insert("Green3", ScColor(0, 176, 0));
CustColors.insert("Green2", ScColor(0, 208, 0));
CustColors.insert("Red", ScColor(0, 255, 255, 0));
CustColors.insert("Red4", ScColor(144, 0, 0));
CustColors.insert("Red3", ScColor(176, 0, 0));
CustColors.insert("Red2", ScColor(208, 0, 0));
CustColors.insert("Yellow", ScColor(0, 0, 255, 0));
CustColors.insert("Magenta", ScColor(0, 255, 0, 0));
CustColors.insert("Magenta4", ScColor(144, 0, 144));
CustColors.insert("Magenta3", ScColor(176, 0, 176));
CustColors.insert("Magenta2", ScColor(208, 0, 208));
CustColors.insert("Brown4", ScColor(128, 48, 0));
CustColors.insert("Brown3", ScColor(160, 64, 0));
CustColors.insert("Brown2", ScColor(192, 96, 0));
CustColors.insert("Pink4", ScColor(255, 128, 128));
CustColors.insert("Pink3", ScColor(255, 160, 160));
CustColors.insert("Pink2", ScColor(255, 192, 192));
CustColors.insert("Pink", ScColor(255, 224, 224));
CustColors.insert("Gold", ScColor(255, 215, 0));
m_Doc->setLoading(true);
m_Doc->DoDrawing = false;
m_Doc->scMW()->setScriptRunning(true);
QString CurDirP = QDir::currentPath();
QDir::setCurrent(fi.path());
if (convert(fName))
{
tmpSel->clear();
QDir::setCurrent(CurDirP);
if (Elements.count() > 1)
m_Doc->groupObjectsList(Elements);
m_Doc->DoDrawing = true;
m_Doc->m_Selection->delaySignalsOn();
QImage tmpImage;
//.........这里部分代码省略.........
示例3: QImage
QImage RoomCLEntry::GetAvatar () const
{
return QImage ();
}
示例4: switch
//.........这里部分代码省略.........
case Qt::SizeVerCursor:
sh = IDC_SIZENS;
break;
case Qt::SizeHorCursor:
sh = IDC_SIZEWE;
break;
case Qt::SizeBDiagCursor:
sh = IDC_SIZENESW;
break;
case Qt::SizeFDiagCursor:
sh = IDC_SIZENWSE;
break;
case Qt::SizeAllCursor:
sh = IDC_SIZEALL;
break;
case Qt::ForbiddenCursor:
sh = IDC_NO;
break;
case Qt::WhatsThisCursor:
sh = IDC_HELP;
break;
case Qt::BusyCursor:
sh = IDC_APPSTARTING;
break;
case Qt::PointingHandCursor:
sh = IDC_HAND;
break;
case Qt::BlankCursor:
case Qt::SplitVCursor:
case Qt::SplitHCursor:
case Qt::OpenHandCursor:
case Qt::ClosedHandCursor:
case Qt::BitmapCursor: {
QImage bbits, mbits;
bool invb, invm;
if (cshape == Qt::BlankCursor) {
bbits = QImage(32, 32, QImage::Format_Mono);
bbits.fill(0); // ignore color table
mbits = bbits.copy();
hx = hy = 16;
invb = invm = false;
} else if (cshape == Qt::OpenHandCursor || cshape == Qt::ClosedHandCursor) {
bool open = cshape == Qt::OpenHandCursor;
QBitmap cb = QBitmap::fromData(QSize(16, 16), open ? openhand_bits : closedhand_bits);
QBitmap cm = QBitmap::fromData(QSize(16, 16), open ? openhandm_bits : closedhandm_bits);
bbits = cb.toImage().convertToFormat(QImage::Format_Mono);
mbits = cm.toImage().convertToFormat(QImage::Format_Mono);
hx = hy = 8;
invb = invm = false;
} else if (cshape != Qt::BitmapCursor) {
int i = cshape - Qt::SplitVCursor;
QBitmap cb = QBitmap::fromData(QSize(32, 32), cursor_bits32[i * 2]);
QBitmap cm = QBitmap::fromData(QSize(32, 32), cursor_bits32[i * 2 + 1]);
bbits = cb.toImage().convertToFormat(QImage::Format_Mono);
mbits = cm.toImage().convertToFormat(QImage::Format_Mono);
if (cshape == Qt::PointingHandCursor) {
hx = 7;
hy = 0;
} else
hx = hy = 16;
invb = invm = false;
} else {
bbits = c.bitmap()->toImage().convertToFormat(QImage::Format_Mono);
mbits = c.mask()->toImage().convertToFormat(QImage::Format_Mono);
invb = bbits.colorCount() > 1 && qGray(bbits.color(0)) < qGray(bbits.color(1));
invm = mbits.colorCount() > 1 && qGray(mbits.color(0)) < qGray(mbits.color(1));
示例5: setup_qt
static
void setup_qt(QImage& image, png_structp png_ptr, png_infop info_ptr, QSize scaledSize, bool *doScaledRead, float screen_gamma=0.0)
{
if (screen_gamma != 0.0 && png_get_valid(png_ptr, info_ptr, PNG_INFO_gAMA)) {
double file_gamma;
png_get_gAMA(png_ptr, info_ptr, &file_gamma);
png_set_gamma(png_ptr, screen_gamma, file_gamma);
}
png_uint_32 width;
png_uint_32 height;
int bit_depth;
int color_type;
png_bytep trans_alpha = 0;
png_color_16p trans_color_p = 0;
int num_trans;
png_colorp palette = 0;
int num_palette;
int interlace_method;
png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, &interlace_method, 0, 0);
png_set_interlace_handling(png_ptr);
if (color_type == PNG_COLOR_TYPE_GRAY) {
// Black & White or 8-bit grayscale
if (bit_depth == 1 && png_get_channels(png_ptr, info_ptr) == 1) {
png_set_invert_mono(png_ptr);
png_read_update_info(png_ptr, info_ptr);
if (image.size() != QSize(width, height) || image.format() != QImage::Format_Mono) {
image = QImage(width, height, QImage::Format_Mono);
if (image.isNull())
return;
}
image.setColorCount(2);
image.setColor(1, qRgb(0,0,0));
image.setColor(0, qRgb(255,255,255));
} else if (bit_depth == 16 && png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) {
png_set_expand(png_ptr);
png_set_strip_16(png_ptr);
png_set_gray_to_rgb(png_ptr);
if (image.size() != QSize(width, height) || image.format() != QImage::Format_ARGB32) {
image = QImage(width, height, QImage::Format_ARGB32);
if (image.isNull())
return;
}
if (QSysInfo::ByteOrder == QSysInfo::BigEndian)
png_set_swap_alpha(png_ptr);
png_read_update_info(png_ptr, info_ptr);
} else {
if (bit_depth == 16)
png_set_strip_16(png_ptr);
else if (bit_depth < 8)
png_set_packing(png_ptr);
int ncols = bit_depth < 8 ? 1 << bit_depth : 256;
png_read_update_info(png_ptr, info_ptr);
if (image.size() != QSize(width, height) || image.format() != QImage::Format_Indexed8) {
image = QImage(width, height, QImage::Format_Indexed8);
if (image.isNull())
return;
}
image.setColorCount(ncols);
for (int i=0; i<ncols; i++) {
int c = i*255/(ncols-1);
image.setColor(i, qRgba(c,c,c,0xff));
}
if (png_get_tRNS(png_ptr, info_ptr, &trans_alpha, &num_trans, &trans_color_p) && trans_color_p) {
const int g = trans_color_p->gray;
if (g < ncols) {
image.setColor(g, 0);
}
}
}
} else if (color_type == PNG_COLOR_TYPE_PALETTE
&& png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette)
&& num_palette <= 256)
{
// 1-bit and 8-bit color
if (bit_depth != 1)
png_set_packing(png_ptr);
png_read_update_info(png_ptr, info_ptr);
png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, 0, 0, 0);
QImage::Format format = bit_depth == 1 ? QImage::Format_Mono : QImage::Format_Indexed8;
if (image.size() != QSize(width, height) || image.format() != format) {
image = QImage(width, height, format);
if (image.isNull())
return;
}
png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette);
image.setColorCount(num_palette);
int i = 0;
if (png_get_tRNS(png_ptr, info_ptr, &trans_alpha, &num_trans, &trans_color_p) && trans_alpha) {
while (i < num_trans) {
image.setColor(i, qRgba(
palette[i].red,
palette[i].green,
palette[i].blue,
trans_alpha[i]
)
);
i++;
//.........这里部分代码省略.........
示例6: QImage
QImage VectorscopeGenerator::calculateVectorscope(const QSize &vectorscopeSize, const QImage &image, const float &gain,
const VectorscopeGenerator::PaintMode &paintMode,
const VectorscopeGenerator::ColorSpace &colorSpace,
const bool &, const uint &accelFactor) const
{
if (vectorscopeSize.width() <= 0 || vectorscopeSize.height() <= 0 || image.width() <= 0 || image.height() <= 0) {
// Invalid size
return QImage();
}
// Prepare the vectorscope data
const int cw = (vectorscopeSize.width() < vectorscopeSize.height()) ? vectorscopeSize.width() : vectorscopeSize.height();
QImage scope = QImage(cw, cw, QImage::Format_ARGB32);
scope.fill(qRgba(0,0,0,0));
const uchar *bits = image.bits();
int r,g,b;
double dy, dr, dg, db, dmax;
double /*y,*/ u, v;
QPoint pt;
QRgb px;
const int stepsize = 4 * accelFactor;
// Just an average for the number of image pixels per scope pixel.
// NOTE: byteCount() has to be replaced by (img.bytesPerLine()*img.height()) for Qt 4.5 to compile, see: http://doc.trolltech.org/4.6/qimage.html#bytesPerLine
double avgPxPerPx = (double) 4*(image.bytesPerLine()*image.height())/scope.size().width()/scope.size().height()/accelFactor;
for (int i = 0; i < (image.bytesPerLine()*image.height()); i+= stepsize) {
QRgb *col = (QRgb *) bits;
r = qRed(*col);
g = qGreen(*col);
b = qBlue(*col);
switch (colorSpace) {
case VectorscopeGenerator::ColorSpace_YUV:
// y = (double) 0.001173 * r +0.002302 * g +0.0004471* b;
u = (double) -0.0005781* r -0.001135 * g +0.001713 * b;
v = (double) 0.002411 * r -0.002019 * g -0.0003921* b;
break;
case VectorscopeGenerator::ColorSpace_YPbPr:
default:
// y = (double) 0.001173 * r +0.002302 * g +0.0004471* b;
u = (double) -0.0006671* r -0.001299 * g +0.0019608* b;
v = (double) 0.001961 * r -0.001642 * g -0.0003189* b;
break;
}
pt = mapToCircle(vectorscopeSize, QPointF(SCALING*gain*u, SCALING*gain*v));
if (pt.x() >= scope.width() || pt.x() < 0
|| pt.y() >= scope.height() || pt.y() < 0) {
// Point lies outside (because of scaling), don't plot it
} else {
// Draw the pixel using the chosen draw mode.
switch (paintMode) {
case PaintMode_YUV:
// see yuvColorWheel
dy = 128; // Default Y value. Lower = darker.
// Calculate the RGB values from YUV/YPbPr
switch (colorSpace) {
case VectorscopeGenerator::ColorSpace_YUV:
dr = dy + 290.8*v;
dg = dy - 100.6*u - 148*v;
db = dy + 517.2*u;
break;
case VectorscopeGenerator::ColorSpace_YPbPr:
default:
dr = dy + 357.5*v;
dg = dy - 87.75*u - 182*v;
db = dy + 451.9*u;
break;
}
if (dr < 0) dr = 0;
if (dg < 0) dg = 0;
if (db < 0) db = 0;
if (dr > 255) dr = 255;
if (dg > 255) dg = 255;
if (db > 255) db = 255;
scope.setPixel(pt, qRgba(dr, dg, db, 255));
break;
case PaintMode_Chroma:
dy = 200; // Default Y value. Lower = darker.
// Calculate the RGB values from YUV/YPbPr
switch (colorSpace) {
case VectorscopeGenerator::ColorSpace_YUV:
dr = dy + 290.8*v;
dg = dy - 100.6*u - 148*v;
db = dy + 517.2*u;
//.........这里部分代码省略.........
示例7: canvas
void KisQPainterCanvas::paintEvent(QPaintEvent * ev)
{
KisImageWSP image = canvas()->image();
if (image == 0) return;
setAutoFillBackground(false);
if (m_buffer.size() != size()) {
m_buffer = QImage(size(), QImage::Format_ARGB32_Premultiplied);
}
QPainter gc(&m_buffer);
// we double buffer, so we paint on an image first, then from the image onto the canvas,
// so copy the clip region since otherwise we're filling the whole buffer every time with
// the background color _and_ the transparent squares.
gc.setClipRegion(ev->region());
KisCoordinatesConverter *converter = coordinatesConverter();
QTransform imageTransform = converter->viewportToWidgetTransform();
gc.save();
gc.setCompositionMode(QPainter::CompositionMode_Source);
gc.fillRect(QRect(QPoint(0, 0), size()), borderColor());
QTransform checkersTransform;
QPointF brushOrigin;
QPolygonF polygon;
converter->getQPainterCheckersInfo(&checkersTransform, &brushOrigin, &polygon);
gc.setPen(Qt::NoPen);
gc.setBrush(m_d->checkBrush);
gc.setBrushOrigin(brushOrigin);
gc.setTransform(checkersTransform);
gc.drawPolygon(polygon);
gc.setTransform(imageTransform);
if (m_d->smooth) {
gc.setRenderHint(QPainter::SmoothPixmapTransform, true);
}
QRectF viewportRect = converter->widgetToViewport(ev->rect());
gc.setCompositionMode(QPainter::CompositionMode_SourceOver);
gc.drawImage(viewportRect, m_d->prescaledProjection->prescaledQImage(),
viewportRect);
gc.restore();
#ifdef DEBUG_REPAINT
QColor color = QColor(random() % 255, random() % 255, random() % 255, 150);
gc.fillRect(ev->rect(), color);
#endif
QRect boundingRect = converter->imageRectInWidgetPixels().toAlignedRect();
drawDecorations(gc, boundingRect);
gc.end();
QPainter painter(this);
painter.drawImage(ev->rect(), m_buffer, ev->rect());
}
示例8: QImage
void Subimage::createImage() {
mImg = QImage((uchar *)mMat.data, mMat.cols, mMat.rows, mMat.step, QImage::Format_RGB888);
}
示例9: painter
//drao table
void gamewidget::paintEvent(QPaintEvent*)
{
QPainter painter(this);
for(int i=0;i<ROW;++i){
for(int j = 0;j<COL;++j){
painter.drawRect(QRect(j*20,i*20,20,20));
}
}
//draw food
painter.drawImage(QRectF(foodx*20,foody*20,20,20),QImage(":/new/prefix1/img/apple.png"));
//draw snake head
switch (directioin) {
case UP:
painter.drawImage(QRectF(snake[0][0]*20,snake[0][1]*20,20,20),QImage(":/new/prefix1/img/headup.png"));
break;
case DOWN:
painter.drawImage(QRectF(snake[0][0]*20,snake[0][1]*20,20,20),QImage(":/new/prefix1/img/headdown.png"));
break;
case LEFT:
painter.drawImage(QRectF(snake[0][0]*20,snake[0][1]*20,20,20),QImage(":/new/prefix1/img/headleft.png"));
break;
case RIGHT:
painter.drawImage(QRectF(snake[0][0]*20,snake[0][1]*20,20,20),QImage(":/new/prefix1/img/headright.png"));
break;
default:
break;
}
//draw body
for(int i=1;i<foodcount;++i){
//左下和上右
if((snake[i][0]==snake[i-1][0] && snake[i][1]<snake[i-1][1]&&
snake[i][0]<snake[i+1][0] && snake[i][1]==snake[i+1][1])||
(snake[i][0]<snake[i-1][0] && snake[i][1]==snake[i-1][1]&&
snake[i][0]==snake[i+1][0] && snake[i][1]<snake[i+1][1])
)
painter.drawImage(QRectF(snake[i][0]*20,snake[i][1]*20,20,20),QImage(":/new/prefix1/img/tl_corner.png"));
//上左和右下
else if((snake[i][0]>snake[i-1][0] && snake[i][1]==snake[i-1][1]&&
snake[i][0]==snake[i+1][0] && snake[i][1]<snake[i+1][1])||
(snake[i][0]==snake[i-1][0] && snake[i][1]<snake[i-1][1]&&
snake[i][0]>snake[i+1][0] && snake[i][1]==snake[i+1][1])
)
painter.drawImage(QRectF(snake[i][0]*20,snake[i][1]*20,20,20),QImage(":/new/prefix1/img/tr_corner.png"));
//下右和左上
else if((snake[i][0]<snake[i-1][0] && snake[i][1]==snake[i-1][1]&&
snake[i][0]==snake[i+1][0] && snake[i][1]>snake[i+1][1])||
(snake[i][0]==snake[i-1][0] && snake[i][1]>snake[i-1][1]&&
snake[i][0]<snake[i+1][0] && snake[i][1]==snake[i+1][1])
)
painter.drawImage(QRectF(snake[i][0]*20,snake[i][1]*20,20,20),QImage(":/new/prefix1/img/bl_corner.png"));
//右上和下左
else if((snake[i][0]==snake[i-1][0] && snake[i][1]>snake[i-1][1]&&
snake[i][0]>snake[i+1][0] && snake[i][1]==snake[i+1][1])||
(snake[i][0]>snake[i-1][0] && snake[i][1]==snake[i-1][1]&&
snake[i][0]==snake[i+1][0] && snake[i][1]>snake[i+1][1])
)
painter.drawImage(QRectF(snake[i][0]*20,snake[i][1]*20,20,20),QImage(":/new/prefix1/img/br_corner.png"));
else if(snake[i][1]==snake[i-1][1]){
painter.drawImage(QRectF(snake[i][0]*20,snake[i][1]*20,20,20),QImage(":/new/prefix1/img/h_body.png"));
}
else if(snake[i][0]==snake[i-1][0]){
painter.drawImage(QRectF(snake[i][0]*20,snake[i][1]*20,20,20),QImage(":/new/prefix1/img/v_body.png"));
}
}
if(foodcount){
if(snake[foodcount][0]==snake[foodcount-1][0]&&snake[foodcount][1]>snake[foodcount-1][1])
painter.drawImage(QRectF(snake[foodcount][0]*20,snake[foodcount][1]*20,20,20),QImage(":/new/prefix1/img/tail.png"));
else if(snake[foodcount][0]==snake[foodcount-1][0]&&snake[foodcount][1]<snake[foodcount-1][1])
painter.drawImage(QRectF(snake[foodcount][0]*20,snake[foodcount][1]*20,20,20),QImage(":/new/prefix1/img/taildown.png"));
else if(snake[foodcount][0]>snake[foodcount-1][0]&&snake[foodcount][1]==snake[foodcount-1][1])
painter.drawImage(QRectF(snake[foodcount][0]*20,snake[foodcount][1]*20,20,20),QImage(":/new/prefix1/img/tailleft.png"));
else
painter.drawImage(QRectF(snake[foodcount][0]*20,snake[foodcount][1]*20,20,20),QImage(":/new/prefix1/img/tailright.png"));
}
}
示例10: loadOverlay
static QPixmap
loadOverlay( const char *iconName )
{
return QImage( locate( "data", QString( "amarok/images/b_%1.png" ).arg( iconName ) ), "PNG" ).smoothScale( 10, 10 );
}
示例11: QGridLayout
//.........这里部分代码省略.........
TeamNameEdit->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
GBTLayout->addWidget(TeamNameEdit, 0, 1, 1, 2);
vbox2->addWidget(GBoxTeam);
CBTeamLvl = new QComboBox(GBoxTeam);
CBTeamLvl->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
CBTeamLvl->setIconSize(QSize(32, 32));
CBTeamLvl->addItem(QIcon(":/res/botlevels/small0.png"), QComboBox::tr("Human"));
for(int i = 5; i > 0; i--)
CBTeamLvl->addItem(
QIcon(QString(":/res/botlevels/small%1.png").arg(6 - i)),
QComboBox::tr("Computer (Level %1)").arg(i)
);
CBTeamLvl->setFixedHeight(38);
GBTLayout->addWidget(CBTeamLvl, 1, 1, 1, 2);
CBGrave = new QComboBox(GBoxTeam);
CBGrave->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
CBGrave->setMaxCount(65535);
CBGrave->setMaxVisibleItems(20);
CBGrave->setIconSize(QSize(32, 32));
CBGrave->setFixedHeight(44);
GBTLayout->addWidget(CBGrave, 2, 1, 1, 2);
// Player flags, combobox to select flag
CBFlag = new QComboBox(GBoxTeam);
CBFlag->setMaxCount(65535);
CBFlag->setMaxVisibleItems(50);
CBFlag->setIconSize(QSize(22, 15));
CBFlag->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
GBTLayout->addWidget(CBFlag, 3, 1, 1, 2);
// CPU level flag. Static image, only displayed when computer player is selected
QImage imgBotlevels = QImage("physfs://Graphics/botlevels.png");
int botlevelOffsets[5]= { 19, 14, 10, 6, 0 };
for(int i=0; i<5; i++) {
QImage imgCPU = QImage("physfs://Graphics/Flags/cpu.png");
QPainter painter(&imgCPU);
painter.drawImage(botlevelOffsets[i], 0, imgBotlevels, botlevelOffsets[i]);
pixCPU[i] = QPixmap::fromImage(imgCPU);
}
QHBoxLayout* hboxCPU = new QHBoxLayout();
hboxCPU->setContentsMargins(0, 0, 0, 0);
hboxCPUWidget = new QWidget();
hboxCPUWidget->setLayout(hboxCPU);
CPUFlag = new QLabel();
CPUFlag->setPixmap(pixCPU[0]);
CPUFlag->setFixedHeight(38);
hboxCPU->addWidget(CPUFlag);
CPUFlagLabel = new QLabel("CPU");
CPUFlagLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
hboxCPU->addWidget(CPUFlagLabel);
hboxCPUWidget->setHidden(true);
GBTLayout->addWidget(hboxCPUWidget, 3, 1, 1, 1);
btnRandomTeamName = addButton(":/res/dice.png", GBTLayout, 0, 3, 1, 1, true);
btnRandomTeamName->setWhatsThis(tr("Randomize the team name"));
示例12: QImage
QImage CameraHandler::Mat2QImage(cv::Mat const& src){
/* Thanks to Marek R */
QImage image = QImage((const uchar *) src.data, src.cols, src.rows, src.step, QImage::Format_RGB888);
image.bits();
return image;
}
示例13: QImage
void LocalFileSource::unload() {
_data = QImage();
}
示例14: file
/*!
* use latex to render LaTeX text (see tex2im, etc.)
*/
QImage TeXRenderer::renderImageLaTeX( const QString& teXString, const QColor& fontColor, const int fontSize, const int dpi){
QTemporaryFile file("/dev/shm/labplot_XXXXXX.tex");
//file.setAutoRemove(false);
if(file.open()) {
QDir::setCurrent("/dev/shm");
}
else {
kWarning()<<"/dev/shm failed. using /tmp"<<endl;
file.setFileTemplate("/tmp/labplot_XXXXXX.tex");
if(file.open())
QDir::setCurrent("/tmp");
else
return QImage();
}
// create latex code
QTextStream out(&file);
out << "\\documentclass{minimal}";
out << "\\usepackage{color}\\usepackage[active,displaymath,textmath,tightpage]{preview}";
out << "\\begin{document}";
out << "\\definecolor{fontcolor}{rgb}{" << fontColor.redF() << ',' << fontColor.greenF() << ','<<fontColor.blueF() << "}";
out << "\\begin{preview}";
out << "{\\fontsize{" << QString::number(fontSize) << "}{" << QString::number(fontSize) << "}\\selectfont";
out << "{\\color{fontcolor}\n";
out << teXString;
out << "\n}}\\end{preview}";
out << "\\end{document}";
out.flush();
// pdflatex: TeX -> PDF
QProcess latexProcess, convertProcess;
latexProcess.start("pdflatex", QStringList() << "-interaction=batchmode" << file.fileName());
QFileInfo fi(file.fileName());
if (latexProcess.waitForFinished()) { // pdflatex finished
QFile::remove(fi.completeBaseName()+".aux");
QFile::remove(fi.completeBaseName()+".log");
//TODO: pdflatex doesn't come back with EX_OK
// if(latexProcess.exitCode() != 0) // skip if pdflatex failed
// return QImage();
// convert: PDF -> PNG
convertProcess.start("convert", QStringList() << "-density"<< QString::number(dpi) + 'x' + QString::number(dpi)
<< fi.completeBaseName() + ".pdf"
<< fi.completeBaseName() + ".png");
//gs doesn't work here. Why?
// convertProcess.start("gs", QStringList()<< "-sDEVICE=png16m"
// << "-dTextAlphaBits=4"
// << "-r" + QString::number(dpi)
// << "-dGraphicsAlphaBits=4"
// << "-sDEVICE=pngalpha"
// << "-dSAFER"
// << "-q"
// << "-dNOPAUSE"
// << "-sOutputFile=" + fi.completeBaseName() + ".png"
// << fi.completeBaseName() + ".pdf");
// clean up and read png file
if (convertProcess.waitForFinished()) {
QFile::remove(fi.completeBaseName()+".pdf");
QImage image;
image.load(fi.completeBaseName()+".png");
QFile::remove(fi.completeBaseName()+".png");
return image;
}else{
QFile::remove(fi.completeBaseName()+".pdf");
return QImage();
}
}else{
kWarning()<<"pdflatex failed."<<endl;
}
//////////// fallback if pdflatex fails ///////////////
// latex: TeX -> DVI
latexProcess.start("latex", QStringList() << "-interaction=batchmode" << file.fileName());
// also possible: latexmf -C
if (!latexProcess.waitForFinished()) {
kWarning()<<"latex failed."<<endl;
QFile::remove(fi.completeBaseName()+".aux");
QFile::remove(fi.completeBaseName()+".log");
return QImage();
}
if(latexProcess.exitCode() != 0) // skip if latex failed
return QImage();
// dvips: DVI -> PS
QProcess dvipsProcess;
dvipsProcess.start("dvips", QStringList() << "-E" << fi.completeBaseName());
if (!dvipsProcess.waitForFinished()) {
kWarning()<<"dvips failed."<<endl;
QFile::remove(fi.completeBaseName()+".dvi");
return QImage();
}
//.........这里部分代码省略.........
示例15: QImage
void core::ImageEffect::setSampledImage(const QString &path)
{
minImage = QImage(path);
}