/* ARGSUSED */ static Boolean ConvertSelection(Widget w, Atom *selection, Atom *target, Atom *type, XtPointer *val_ret, unsigned long *length, int *format) { XPointer *value = (XPointer *)val_ret; BitmapWidget BW = (BitmapWidget) w; Pixmap *pixmap; char *data; XImage *image; Dimension width, height; switch (*target) { /* XA_TARGETS undefined ?!? case XA_TARGETS: *type = XA_ATOM; *value = (XPointer) bitmapClassRec.bitmap_class.targets; *length = bitmapClassRec.bitmap_class.num_targets; *format = 32; return True; */ case XA_BITMAP: case XA_PIXMAP: if (BWQueryMarked(w)) { width = BW->bitmap.mark.to_x - BW->bitmap.mark.from_x + 1; height = BW->bitmap.mark.to_y - BW->bitmap.mark.from_y + 1; data = CreateCleanData(Length(width, height)); image = CreateBitmapImage(BW, data, width, height); CopyImageData(BW->bitmap.image, image, BW->bitmap.mark.from_x, BW->bitmap.mark.from_y, BW->bitmap.mark.to_x, BW->bitmap.mark.to_y, 0, 0); pixmap = (Pixmap *) XtMalloc(sizeof(Pixmap)); *pixmap = GetPixmap(BW, image); DestroyBitmapImage(&image); } else if (BWQueryStored(w)) { pixmap = (Pixmap *) XtMalloc(sizeof(Pixmap)); *pixmap = GetPixmap(BW, BW->bitmap.storage); } else return False; *type = XA_PIXMAP; *value = (XPointer) pixmap; *length = 1; *format = 32; return True; default: return False; } }
void WaveExplorerUi::UpdateItemWave() { ClearItemsData(); if (style_changed_) { DeleteDataSet(); } int width = SetItemWidth(); QPixmap pixmap(width, PIXMPA_HEIGHT); MDataBase *db = MDataBase::GetInstance(); QList<int> sid_list = db->RawWaveInfoIdList(); for (int i = 0; i < sid_list.count(); i++) { int sid = sid_list.at(i); MISEIS_F_CONTINUE(GetPixmap(sid, i, &pixmap)); QListWidgetItem *item = new QListWidgetItem; item->setIcon(QIcon(pixmap)); item->setFlags(Qt::ItemIsEnabled); this->addItem(item); wave_list_.append(sid); } style_changed_ = false; }
void TextureDrop::SetTexture(Render::TextureInterface* p_texture) { if(p_texture != nullptr) { QPixmap pm = GetPixmap(p_texture); ui.label_2->setPixmap(pm.scaled(ui.label_2->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation)); } }
QImage PlainImageLoader::loadAndResize( Meta::AlbumPtr iAlbum, QSize size ) { //qDebug() << <<"ImageLoader::loadAndresize()"; QImage image; QPixmap pixmap = GetPixmap(iAlbum); image = pixmap.toImage(); image = image.scaled( size, Qt::KeepAspectRatio, Qt::SmoothTransformation ); return image; }
void Plugin::shoot () { ShotAction_->setEnabled (true); qDebug () << Q_FUNC_INFO << Dialog_->isVisible (); auto mw = Proxy_->GetMainWindow (); const QPixmap& pm = GetPixmap (); int quality = Dialog_->GetQuality (); switch (Dialog_->GetAction ()) { case ShooterDialog::Action::Save: { QString path = Proxy_->GetSettingsManager ()-> Property ("PluginsStorage/Auscrie/SavePath", QDir::currentPath () + "01." + Dialog_->GetFormat ()) .toString (); QString filename = QFileDialog::getSaveFileName (mw, tr ("Save as"), path, tr ("%1 files (*.%1);;All files (*.*)") .arg (Dialog_->GetFormat ())); if (!filename.isEmpty ()) { pm.save (filename, qPrintable (Dialog_->GetFormat ()), quality); Proxy_->GetSettingsManager ()-> setProperty ("PluginsStorage/Auscrie/SavePath", filename); } } break; case ShooterDialog::Action::Upload: { QByteArray bytes; QBuffer buf (&bytes); buf.open (QIODevice::ReadWrite); if (!pm.save (&buf, qPrintable (Dialog_->GetFormat ()), quality)) qWarning () << Q_FUNC_INFO << "save failed" << qPrintable (Dialog_->GetFormat ()) << quality; Post (bytes); break; } } }
wxBitmap wxBitmap::Rescale( int clipx, int clipy, int clipwidth, int clipheight, int newx, int newy ) { wxCHECK_MSG( Ok(), wxNullBitmap, wxT("invalid bitmap") ); if (newy==M_BMPDATA->m_width && newy==M_BMPDATA->m_height) return *this; int width = wxMax(newx, 1); int height = wxMax(newy, 1); width = wxMin(width, clipwidth); height = wxMin(height, clipheight); wxBitmap bmp; #ifdef __WXGTK20__ if (HasPixbuf()) { bmp.SetWidth(width); bmp.SetHeight(height); bmp.SetDepth(GetDepth()); bmp.SetPixbuf(gdk_pixbuf_new(GDK_COLORSPACE_RGB, gdk_pixbuf_get_has_alpha(GetPixbuf()), 8, width, height)); gdk_pixbuf_scale(GetPixbuf(), bmp.GetPixbuf(), 0, 0, width, height, clipx, clipy, (double)newx/GetWidth(), (double)newy/GetHeight(), GDK_INTERP_BILINEAR); } else #endif // __WXGTK20__ { GdkImage *img = (GdkImage*) NULL; if (GetPixmap()) img = gdk_image_get( GetPixmap(), 0, 0, GetWidth(), GetHeight() ); else if (GetBitmap()) img = gdk_image_get( GetBitmap(), 0, 0, GetWidth(), GetHeight() ); else wxFAIL_MSG( wxT("Ill-formed bitmap") ); wxCHECK_MSG( img, wxNullBitmap, wxT("couldn't create image") ); int bpp = -1; GdkGC *gc = NULL; GdkPixmap *dstpix = NULL; if (GetPixmap()) { GdkVisual *visual = gdk_window_get_visual( GetPixmap() ); if (visual == NULL) visual = wxTheApp->GetGdkVisual(); bpp = visual->depth; bmp = wxBitmap(width,height,bpp); dstpix = bmp.GetPixmap(); gc = gdk_gc_new( dstpix ); } char *dst = NULL; long dstbyteperline = 0; if (GetBitmap()) { bpp = 1; dstbyteperline = width/8*M_BMPDATA->m_bpp; if (width*M_BMPDATA->m_bpp % 8 != 0) dstbyteperline++; dst = (char*) malloc(dstbyteperline*height); } // be careful to use the right scaling factor float scx = (float)M_BMPDATA->m_width/(float)newx; float scy = (float)M_BMPDATA->m_height/(float)newy; // prepare accel-tables int *tablex = (int *)calloc(width,sizeof(int)); int *tabley = (int *)calloc(height,sizeof(int)); // accel table filled with clipped values for (int x = 0; x < width; x++) tablex[x] = (int) (scx * (x+clipx)); for (int y = 0; y < height; y++) tabley[y] = (int) (scy * (y+clipy)); // Main rescaling routine starts here for (int h = 0; h < height; h++) { char outbyte = 0; int old_x = -1; guint32 old_pixval = 0; for (int w = 0; w < width; w++) { guint32 pixval; int x = tablex[w]; if (x == old_x) pixval = old_pixval; else { pixval = gdk_image_get_pixel( img, x, tabley[h] ); old_pixval = pixval; old_x = x; } if (bpp == 1) { if (!pixval) { char bit=1; char shift = bit << w % 8; outbyte |= shift; } if ((w+1)%8==0) { dst[h*dstbyteperline+w/8] = outbyte; outbyte = 0; } } else { GdkColor col; col.pixel = pixval; gdk_gc_set_foreground( gc, &col ); gdk_draw_point( dstpix, gc, w, h); } } // do not forget the last byte if ((bpp == 1) && (width % 8 != 0)) dst[h*dstbyteperline+width/8] = outbyte; } gdk_image_destroy( img ); if (gc) gdk_gc_unref( gc ); if (bpp == 1) { bmp = wxBitmap( (const char *)dst, width, height, 1 ); free( dst ); } if (GetMask()) { dstbyteperline = width/8; if (width % 8 != 0) dstbyteperline++; dst = (char*) malloc(dstbyteperline*height); img = gdk_image_get( GetMask()->GetBitmap(), 0, 0, GetWidth(), GetHeight() ); for (int h = 0; h < height; h++) { char outbyte = 0; int old_x = -1; guint32 old_pixval = 0; for (int w = 0; w < width; w++) { guint32 pixval; int x = tablex[w]; if (x == old_x) pixval = old_pixval; else { pixval = gdk_image_get_pixel( img, x, tabley[h] ); old_pixval = pixval; old_x = x; } if (pixval) { char bit=1; char shift = bit << w % 8; outbyte |= shift; } if ((w+1)%8 == 0) { dst[h*dstbyteperline+w/8] = outbyte; outbyte = 0; } } // do not forget the last byte if (width % 8 != 0) dst[h*dstbyteperline+width/8] = outbyte; } wxMask* mask = new wxMask; mask->m_bitmap = gdk_bitmap_create_from_data( wxGetRootWindow()->window, (gchar *) dst, width, height ); bmp.SetMask(mask); free( dst ); gdk_image_destroy( img ); } free( tablex ); free( tabley ); } return bmp; }
QIcon Resources::GetIcon(int id) { return QIcon(GetPixmap(id)); }