本文整理汇总了C#中Gdk.Scale方法的典型用法代码示例。如果您正苦于以下问题:C# Gdk.Scale方法的具体用法?C# Gdk.Scale怎么用?C# Gdk.Scale使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Gdk
的用法示例。
在下文中一共展示了Gdk.Scale方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: MakeThumbnail
/// <summary>
/// Crea una imagen mas pequeña a partir de otra.
/// </summary>
/// <param name="image">
/// La imagen a la que se le quiere hacer una previsualización.
/// </param>
/// <param name="size">
/// El tamaño de la previsualización.
/// </param>
public static Gdk.Pixbuf MakeThumbnail(Gdk.Pixbuf image, int size)
{
float scale;
// La escalamos para que no se distorsione.
if(image.Width > image.Height)
{
scale = (float)(size)/image.Width;
}
else
{
scale = (float)(size)/image.Height;
}
int newWidth = (int)(scale*image.Width);
int newHeight = (int)(scale*image.Height);
Pixbuf res =
new Pixbuf(image.Colorspace, image.HasAlpha, image.BitsPerSample, size, size);
res.Fill(0xFFFFFFFF);
image.Scale(res,
0,0,
size, size,
(size -newWidth)/2,(size-newHeight)/2,
scale, scale,
Gdk.InterpType.Bilinear );
return res;
}
示例2: Scale
private static Gdk.Pixbuf Scale(Gdk.Pixbuf pixbuf, int width, int height, out int widthPadding,
out int heightPadding)
{
if (pixbuf.Width == width && pixbuf.Height == height) {
widthPadding = 0;
heightPadding = 0;
return pixbuf;
}
double scale = Math.Min (width / (double) pixbuf.Width, height / (double) pixbuf.Height);
int scaleWidth = (int) (scale * pixbuf.Width);
int scaleHeight = (int) (scale * pixbuf.Height);
Gdk.Pixbuf scaled = new Gdk.Pixbuf (Gdk.Colorspace.Rgb, false, 8, width, height);
scaled.Fill (0);
widthPadding = width - scaleWidth;
heightPadding = height - scaleHeight;
pixbuf.Scale (scaled, widthPadding / 2, heightPadding / 2, scaleWidth, scaleHeight,
widthPadding / 2, heightPadding / 2, scale, scale, Gdk.InterpType.Bilinear);
return scaled;
}