本文整理汇总了C++中GDK_IS_PIXBUF函数的典型用法代码示例。如果您正苦于以下问题:C++ GDK_IS_PIXBUF函数的具体用法?C++ GDK_IS_PIXBUF怎么用?C++ GDK_IS_PIXBUF使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GDK_IS_PIXBUF函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ev_document_misc_render_thumbnail_frame
static GdkPixbuf *
ev_document_misc_render_thumbnail_frame (GtkWidget *widget,
int width,
int height,
gboolean inverted_colors,
GdkPixbuf *source_pixbuf)
{
GtkStyleContext *context = gtk_widget_get_style_context (widget);
GtkStateFlags state = gtk_widget_get_state_flags (widget);
int width_r, height_r;
int width_f, height_f;
cairo_surface_t *surface;
cairo_t *cr;
GtkBorder border = {0, };
GdkPixbuf *retval;
if (source_pixbuf) {
g_return_val_if_fail (GDK_IS_PIXBUF (source_pixbuf), NULL);
width_r = gdk_pixbuf_get_width (source_pixbuf);
height_r = gdk_pixbuf_get_height (source_pixbuf);
} else {
width_r = width;
height_r = height;
}
gtk_style_context_save (context);
gtk_style_context_add_class (context, "page-thumbnail");
if (inverted_colors)
gtk_style_context_add_class (context, "inverted");
gtk_style_context_get_border (context, state, &border);
width_f = width_r + border.left + border.right;
height_f = height_r + border.top + border.bottom;
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
width_f, height_f);
cr = cairo_create (surface);
if (source_pixbuf) {
gdk_cairo_set_source_pixbuf (cr, source_pixbuf, border.left, border.top);
cairo_paint (cr);
} else {
gtk_render_background (context, cr, 0, 0, width_f, height_f);
}
gtk_render_frame (context, cr, 0, 0, width_f, height_f);
cairo_destroy (cr);
gtk_style_context_restore (context);
retval = gdk_pixbuf_get_from_surface (surface, 0, 0, width_f, height_f);
cairo_surface_destroy (surface);
return retval;
}
示例2: gimp_thumbnail_save_thumb_local
/**
* gimp_thumbnail_save_thumb_local:
* @thumbnail: a #GimpThumbnail object
* @pixbuf: a #GdkPixbuf representing the preview thumbnail
* @software: a string describing the software saving the thumbnail
* @error: return location for possible errors
*
* Saves a preview thumbnail for the image associated with @thumbnail
* to the local thumbnail repository. Local thumbnails have been added
* with version 0.7 of the spec.
*
* Please see also gimp_thumbnail_save_thumb(). The notes made there
* apply here as well.
*
* Return value: %TRUE if a thumbnail was successfully written,
* %FALSE otherwise
*
* Since: 2.2
**/
gboolean
gimp_thumbnail_save_thumb_local (GimpThumbnail *thumbnail,
GdkPixbuf *pixbuf,
const gchar *software,
GError **error)
{
GimpThumbSize size;
gchar *name;
gchar *filename;
gchar *dirname;
gboolean success;
g_return_val_if_fail (GIMP_IS_THUMBNAIL (thumbnail), FALSE);
g_return_val_if_fail (thumbnail->image_uri != NULL, FALSE);
g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), FALSE);
g_return_val_if_fail (software != NULL, FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
GIMP_THUMB_DEBUG_CALL (thumbnail);
size = MAX (gdk_pixbuf_get_width (pixbuf), gdk_pixbuf_get_height (pixbuf));
if (size < 1)
return TRUE;
filename = _gimp_thumb_filename_from_uri (thumbnail->image_uri);
if (! filename)
return TRUE;
dirname = g_path_get_dirname (filename);
g_free (filename);
name = gimp_thumb_name_from_uri_local (thumbnail->image_uri, size);
if (! name)
{
g_free (dirname);
return TRUE;
}
if (! gimp_thumb_ensure_thumb_dir_local (dirname, size, error))
{
g_free (name);
g_free (dirname);
return FALSE;
}
g_free (dirname);
success = gimp_thumbnail_save (thumbnail,
size, name, pixbuf, software,
error);
g_free (name);
return success;
}
示例3: gdl_dock_object_set_pixbuf
/**
* gdl_dock_object_set_pixbuf:
* @object: a #GdlDockObject
* @icon: (allow-none): a icon or %NULL
*
* Set a icon for a dock object using a #GdkPixbuf.
*
* Since: 3.6
*/
void
gdl_dock_object_set_pixbuf (GdlDockObject *object,
GdkPixbuf *icon)
{
g_return_if_fail (GDL_IS_DOCK_OBJECT (object));
g_return_if_fail (icon == NULL || GDK_IS_PIXBUF (icon));
object->priv->pixbuf_icon =icon;
g_object_notify_by_pspec (G_OBJECT (object), properties[PROP_PIXBUF_ICON]);
}
示例4: zbar_gtk_release_pixbuf
void zbar_gtk_release_pixbuf (zbar_image_t *img)
{
GdkPixbuf *pixbuf = zbar_image_get_userdata(img);
g_assert(GDK_IS_PIXBUF(pixbuf));
/* remove reference */
zbar_image_set_userdata(img, NULL);
/* release reference to associated pixbuf and it's data */
g_object_unref(pixbuf);
}
示例5: gwy_gl_material_sample_to_pixbuf
/**
* gwy_gl_material_sample_to_pixbuf:
* @gl_material: A GL material to sample.
* @pixbuf: A pixbuf to sample gl_material to (in horizontal direction).
*
* Samples GL material to a provided pixbuf.
**/
void
gwy_gl_material_sample_to_pixbuf(GwyGLMaterial *gl_material,
GdkPixbuf *pixbuf)
{
GwyGLMaterial *glm = gl_material;
gint width, height, rowstride, i, j, bpp;
gboolean has_alpha;
guchar *row, *pdata;
guchar alpha;
gdouble p, q;
g_return_if_fail(GWY_IS_GL_MATERIAL(gl_material));
g_return_if_fail(GDK_IS_PIXBUF(pixbuf));
width = gdk_pixbuf_get_width(pixbuf);
height = gdk_pixbuf_get_height(pixbuf);
rowstride = gdk_pixbuf_get_rowstride(pixbuf);
has_alpha = gdk_pixbuf_get_has_alpha(pixbuf);
pdata = gdk_pixbuf_get_pixels(pixbuf);
bpp = 3 + (has_alpha ? 1 : 0);
q = (width == 1) ? 0.0 : 1.0/(width - 1.0);
p = (height == 1) ? 0.0 : 1.0/(height - 1.0);
alpha = (guchar)CLAMP(MAX_CVAL*glm->ambient.a, 0.0, 255.0);
for (j = 0; j < width; j++) {
gdouble VRp = j*q*(2.0 - j*q);
gdouble s = pow(VRp, 128.0*glm->shininess);
GwyRGBA s0;
s0.r = glm->emission.r + 0.3*glm->ambient.r + glm->specular.r*s;
s0.g = glm->emission.g + 0.3*glm->ambient.g + glm->specular.g*s;
s0.b = glm->emission.b + 0.3*glm->ambient.b + glm->specular.b*s;
for (i = 0; i < height; i++) {
gdouble LNp = 1.0 - i*p;
gdouble v;
row = pdata + i*rowstride + j*bpp;
v = s0.r + glm->diffuse.r*LNp;
*(row++) = (guchar)CLAMP(MAX_CVAL*v, 0.0, 255.0);
v = s0.g + glm->diffuse.g*LNp;
*(row++) = (guchar)CLAMP(MAX_CVAL*v, 0.0, 255.0);
v = s0.b + glm->diffuse.b*LNp;
*(row++) = (guchar)CLAMP(MAX_CVAL*v, 0.0, 255.0);
if (has_alpha)
*(row++) = alpha;
}
}
}
示例6: gdk_pixbuf_fill
/**
* gdk_pixbuf_fill:
* @pixbuf: a #GdkPixbuf
* @pixel: RGBA pixel to clear to
* (0xffffffff is opaque white, 0x00000000 transparent black)
*
* Clears a pixbuf to the given RGBA value, converting the RGBA value into
* the pixbuf's pixel format. The alpha will be ignored if the pixbuf
* doesn't have an alpha channel.
*
**/
void
gdk_pixbuf_fill (GdkPixbuf *pixbuf,
guint32 pixel)
{
guchar *pixels;
guint r, g, b, a;
guchar *p;
guint w, h;
g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
g_return_if_fail (pixbuf->pixels || pixbuf->bytes);
if (pixbuf->width == 0 || pixbuf->height == 0)
return;
/* Force an implicit copy */
pixels = gdk_pixbuf_get_pixels (pixbuf);
r = (pixel & 0xff000000) >> 24;
g = (pixel & 0x00ff0000) >> 16;
b = (pixel & 0x0000ff00) >> 8;
a = (pixel & 0x000000ff);
h = pixbuf->height;
while (h--) {
w = pixbuf->width;
p = pixels;
switch (pixbuf->n_channels) {
case 3:
while (w--) {
p[0] = r;
p[1] = g;
p[2] = b;
p += 3;
}
break;
case 4:
while (w--) {
p[0] = r;
p[1] = g;
p[2] = b;
p[3] = a;
p += 4;
}
break;
default:
break;
}
pixels += pixbuf->rowstride;
}
}
示例7: gdk_pixbuf_remove_option
/**
* gdk_pixbuf_remove_option:
* @pixbuf: a #GdkPixbuf
* @key: a nul-terminated string representing the key to remove.
*
* Remove the key/value pair option attached to a #GdkPixbuf.
*
* Return value: %TRUE if an option was removed, %FALSE if not.
*
* Since: 2.36
**/
gboolean
gdk_pixbuf_remove_option (GdkPixbuf *pixbuf,
const gchar *key)
{
GQuark quark;
gchar **options;
guint n;
GPtrArray *array;
gboolean found;
g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), FALSE);
g_return_val_if_fail (key != NULL, FALSE);
quark = g_quark_from_static_string ("gdk_pixbuf_options");
options = g_object_get_qdata (G_OBJECT (pixbuf), quark);
if (!options)
return FALSE;
g_object_steal_qdata (G_OBJECT (pixbuf), quark);
/* There's at least a nul-terminator */
array = g_ptr_array_new_full (1, g_free);
found = FALSE;
for (n = 0; options[2*n]; n++) {
if (strcmp (options[2*n], key) != 0) {
g_ptr_array_add (array, g_strdup (options[2*n])); /* key */
g_ptr_array_add (array, g_strdup (options[2*n+1])); /* value */
} else {
found = TRUE;
}
}
if (array->len == 0) {
g_ptr_array_unref (array);
g_strfreev (options);
return found;
}
if (!found) {
g_ptr_array_free (array, TRUE);
g_object_set_qdata_full (G_OBJECT (pixbuf), quark,
options, (GDestroyNotify) g_strfreev);
return FALSE;
}
g_ptr_array_add (array, NULL);
g_object_set_qdata_full (G_OBJECT (pixbuf), quark,
g_ptr_array_free (array, FALSE), (GDestroyNotify) g_strfreev);
g_strfreev (options);
return TRUE;
}
示例8: g_object_get
/**
* Adds an image to the current clip.
* TODO: should be moved out of here, to application.
*/
void Pipeline::grab_frame()
{
GdkPixbuf* pixbuf;
g_object_get(G_OBJECT(gdkpixbufsink_), "last-pixbuf", &pixbuf, NULL);
if (! GDK_IS_PIXBUF(pixbuf))
{
std::cout << "No picture yet to grab!" << std::endl;
} else {
save_image_to_current_clip(pixbuf);
}
g_object_unref(pixbuf);
}
示例9: gdk_pixbuf_read_pixel_bytes
/**
* gdk_pixbuf_read_pixel_bytes:
* @pixbuf: A pixbuf
*
* Returns: (transfer full): A new reference to a read-only copy of
* the pixel data. Note that for mutable pixbufs, this function will
* incur a one-time copy of the pixel data for conversion into the
* returned #GBytes.
*
* Since: 2.32
*/
GBytes *
gdk_pixbuf_read_pixel_bytes (const GdkPixbuf *pixbuf)
{
g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
if (pixbuf->bytes) {
return g_bytes_ref (pixbuf->bytes);
} else {
return g_bytes_new (pixbuf->pixels,
gdk_pixbuf_get_byte_length (pixbuf));
}
}
示例10: moko_contacts_get_photo
void
moko_contacts_get_photo (MokoContacts *contacts, MokoContact *m_contact)
{
MokoContactsPrivate *priv;
EContact *e_contact;
EContactPhoto *photo;
GError *err = NULL;
GdkPixbufLoader *loader;
g_return_if_fail (MOKO_IS_CONTACTS (contacts));
g_return_if_fail (m_contact);
priv = contacts->priv;
if (!e_book_get_contact (priv->book, m_contact->uid, &e_contact, &err))
{
g_warning ("%s\n", err->message);
m_contact->photo = gdk_pixbuf_new_from_file (PKGDATADIR"/person.png", NULL);
if (m_contact->photo)
g_object_ref (m_contact->photo);
return;
}
photo = e_contact_get (e_contact, E_CONTACT_PHOTO);
if (!photo)
{
m_contact->photo = gdk_pixbuf_new_from_file (PKGDATADIR"/person.png", NULL);
if (m_contact->photo)
g_object_ref (m_contact->photo);
return;
}
loader = gdk_pixbuf_loader_new ();
gdk_pixbuf_loader_write (loader,
photo->data.inlined.data,
photo->data.inlined.length,
NULL);
gdk_pixbuf_loader_close (loader, NULL);
m_contact->photo = gdk_pixbuf_loader_get_pixbuf (loader);
if (GDK_IS_PIXBUF (m_contact->photo))
g_object_ref (m_contact->photo);
else
{
m_contact->photo = gdk_pixbuf_new_from_file (PKGDATADIR"/person.png", NULL);
if (m_contact->photo)
g_object_ref (m_contact->photo);
}
g_object_unref (loader);
e_contact_photo_free (photo);
}
示例11: gtk_selection_data_set_pixbuf
/**
* gtk_selection_data_set_pixbuf:
* @selection_data: a #GtkSelectionData
* @pixbuf: a #GdkPixbuf
*
* Sets the contents of the selection from a #GdkPixbuf
* The pixbuf is converted to the form determined by
* @selection_data->target.
*
* Returns: %TRUE if the selection was successfully set,
* otherwise %FALSE.
**/
gboolean
gtk_selection_data_set_pixbuf (GtkSelectionData *selection_data,
GdkPixbuf *pixbuf)
{
GSList *formats, *f;
gchar **mimes, **m;
GdkAtom atom;
gboolean result;
gchar *str, *type;
gsize len;
g_return_val_if_fail (selection_data != NULL, FALSE);
g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), FALSE);
formats = gdk_pixbuf_get_formats ();
for (f = formats; f; f = f->next)
{
GdkPixbufFormat *fmt = f->data;
mimes = gdk_pixbuf_format_get_mime_types (fmt);
for (m = mimes; *m; m++)
{
atom = g_intern_string (*m);
if (selection_data->target == atom)
{
str = NULL;
type = gdk_pixbuf_format_get_name (fmt);
result = gdk_pixbuf_save_to_buffer (pixbuf, &str, &len,
type, NULL,
((strcmp (type, "png") == 0) ?
"compression" : NULL), "2",
NULL);
if (result)
gtk_selection_data_set (selection_data,
atom, 8, (guchar *)str, len);
g_free (type);
g_free (str);
g_strfreev (mimes);
g_slist_free (formats);
return result;
}
}
g_strfreev (mimes);
}
g_slist_free (formats);
return FALSE;
}
示例12: gdk_pixbuf_read_pixels
/**
* gdk_pixbuf_read_pixels:
* @pixbuf: A pixbuf
*
* Returns a read-only pointer to the raw pixel data; must not be
* modified. This function allows skipping the implicit copy that
* must be made if gdk_pixbuf_get_pixels() is called on a read-only
* pixbuf.
*
* Since: 2.32
*/
const guint8*
gdk_pixbuf_read_pixels (const GdkPixbuf *pixbuf)
{
g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
if (pixbuf->bytes) {
gsize len;
/* Ignore len; callers know the size via other variables */
return g_bytes_get_data (pixbuf->bytes, &len);
} else {
return pixbuf->pixels;
}
}
示例13: ColorForIcon
void HudIconTextureSource::ColorForIcon(GdkPixbuf* pixbuf)
{
if (GDK_IS_PIXBUF(pixbuf))
{
unsigned int width = gdk_pixbuf_get_width(pixbuf);
unsigned int height = gdk_pixbuf_get_height(pixbuf);
unsigned int row_bytes = gdk_pixbuf_get_rowstride(pixbuf);
long int rtotal = 0, gtotal = 0, btotal = 0;
float total = 0.0f;
guchar* img = gdk_pixbuf_get_pixels(pixbuf);
for (unsigned int i = 0; i < width; i++)
{
for (unsigned int j = 0; j < height; j++)
{
guchar* pixels = img + (j * row_bytes + i * 4);
guchar r = *(pixels + 0);
guchar g = *(pixels + 1);
guchar b = *(pixels + 2);
guchar a = *(pixels + 3);
float saturation = (MAX(r, MAX(g, b)) - MIN(r, MIN(g, b))) / 255.0f;
float relevance = .1 + .9 * (a / 255.0f) * saturation;
rtotal += (guchar)(r * relevance);
gtotal += (guchar)(g * relevance);
btotal += (guchar)(b * relevance);
total += relevance * 255;
}
}
nux::color::RedGreenBlue rgb(rtotal / total,
gtotal / total,
btotal / total);
nux::color::HueSaturationValue hsv(rgb);
if (hsv.saturation > 0.15f)
hsv.saturation = 0.65f;
hsv.value = 0.90f;
bg_color = nux::Color(nux::color::RedGreenBlue(hsv));
}
else
{
LOG_ERROR(logger) << "Pixbuf (" << pixbuf << ") passed is non valid";
bg_color = nux::Color(255,255,255,255);
}
}
示例14: astro_contact_row_set_icon
static void
astro_contact_row_set_icon (AstroContactRow *row, GdkPixbuf *icon)
{
AstroContactRowPrivate *priv;
g_return_if_fail (ASTRO_IS_CONTACT_ROW (row));
g_return_if_fail (GDK_IS_PIXBUF (icon));
priv = row->priv;
priv->icon = icon;
g_object_set (G_OBJECT (priv->texture), "pixbuf", icon, NULL);
clutter_actor_set_size (priv->texture, ICON_SIZE, ICON_SIZE);
}
示例15: gdk_pixbuf_get_pixels_with_length
/**
* gdk_pixbuf_get_pixels_with_length: (rename-to gdk_pixbuf_get_pixels)
* @pixbuf: A pixbuf.
* @length: (out): The length of the binary data.
*
* Queries a pointer to the pixel data of a pixbuf.
*
* Return value: (array length=length): A pointer to the pixbuf's
* pixel data. Please see the section on [image data][image-data]
* for information about how the pixel data is stored in memory.
*
* This function will cause an implicit copy of the pixbuf data if the
* pixbuf was created from read-only data.
*
* Since: 2.26
*/
guchar *
gdk_pixbuf_get_pixels_with_length (const GdkPixbuf *pixbuf,
guint *length)
{
g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
downgrade_to_pixels (pixbuf);
g_assert (pixbuf->storage == STORAGE_PIXELS);
if (length)
*length = gdk_pixbuf_get_byte_length (pixbuf);
return pixbuf->s.pixels.pixels;
}