Graphics 如何在.NET CF 2.0下调整位图的大小

Graphics 如何在.NET CF 2.0下调整位图的大小,graphics,windows-mobile,compact-framework,bitmap,Graphics,Windows Mobile,Compact Framework,Bitmap,我有一个位图,我想通过编程将其放大到原来大小的1.5倍或2倍。在.NETCF2.0下有没有一种简单的方法可以做到这一点 一种“正常”方法是创建所需大小的新位图,为其创建图形,然后使用图形将旧图像绘制到其上。DrawImage(点、矩形)。这些调用中有没有一个在Compact框架上不可用 编辑:这里有一个简短但完整的应用程序,可在桌面上运行: using System; using System.Drawing; class Test { static void Main() {

我有一个位图,我想通过编程将其放大到原来大小的1.5倍或2倍。在.NETCF2.0下有没有一种简单的方法可以做到这一点

一种“正常”方法是创建所需大小的新
位图
,为其创建
图形
,然后使用
图形将旧图像绘制到其上。DrawImage(点、矩形)
。这些调用中有没有一个在Compact框架上不可用

编辑:这里有一个简短但完整的应用程序,可在桌面上运行:

using System;
using System.Drawing;

class Test
{
    static void Main()
    {
        using (Image original = Image.FromFile("original.jpg"))
        using (Bitmap bigger = new Bitmap(original.Width * 2,
                                   original.Height * 2,
                                   original.PixelFormat))
        using (Graphics g = Graphics.FromImage(bigger))
        {
            g.DrawImage(original, new Rectangle(Point.Empty, bigger.Size));
            bigger.Save("bigger.jpg");
        }
    }
}
即使这样做有效,在插值等方面也可能有更好的方法。如果它在紧凑的框架上工作,至少会给你一个起点。

一种“正常”方法是创建一个新的所需大小的
位图,为它创建一个
Graphics
,然后用
Graphics.DrawImage(点、矩形)
将旧图像绘制到上面。这些调用中有没有一个在Compact框架上不可用

编辑:这里有一个简短但完整的应用程序,可在桌面上运行:

using System;
using System.Drawing;

class Test
{
    static void Main()
    {
        using (Image original = Image.FromFile("original.jpg"))
        using (Bitmap bigger = new Bitmap(original.Width * 2,
                                   original.Height * 2,
                                   original.PixelFormat))
        using (Graphics g = Graphics.FromImage(bigger))
        {
            g.DrawImage(original, new Rectangle(Point.Empty, bigger.Size));
            bigger.Save("bigger.jpg");
        }
    }
}

即使这样做有效,在插值等方面也可能有更好的方法。如果它在紧凑框架上工作,至少会给你一个起点。

CF可以访问标准图形和位图对象,如完整框架

  • 将原始图像转换为位图
  • 创建所需大小的新位图
  • 将图形对象与新位图关联
  • 使用旧图像和重载调用以指定宽度/高度
  • 处置
版本: .NET精简框架
在:3.5、2.0、1.0中受支持,CF可以访问标准图形和位图对象,如完整框架

  • 将原始图像转换为位图
  • 创建所需大小的新位图
  • 将图形对象与新位图关联
  • 使用旧图像和重载调用以指定宽度/高度
  • 处置
版本: .NET精简框架
支持:3.5、2.0、1.0

比我快,因为我查找了Compact Framework=)我尝试了,但MSDN对此问题不是非常清楚。。。至少不是我使用的离线版本。我想知道当你构建这样的位图并要求它缩放它时,它使用什么插值模式。同样,MSDN不清楚…可以工作,但需要修复一些有关CF兼容性的错误:1)Bitmap.PixelFormat属性不存在2)Rectangle只有构造函数矩形(x、y、width、height)3)g.DrawImage没有简单的覆盖。您需要将其命名为:g.DrawImage(原始,新矩形(0,0,更大.宽度,更大.高度),新矩形(0,0,原始.宽度,原始.高度),GraphicsUnit.Pixel);击败我,因为我查找了Compact Framework=)上是否提供了它们,我尝试了,但MSDN对此问题并不十分清楚。。。至少不是我使用的离线版本。我想知道当你构建这样的位图并要求它缩放它时,它使用什么插值模式。同样,MSDN不清楚…可以工作,但需要修复一些有关CF兼容性的错误:1)Bitmap.PixelFormat属性不存在2)Rectangle只有构造函数矩形(x、y、width、height)3)g.DrawImage没有简单的覆盖。您需要将其命名为:g.DrawImage(原始,新矩形(0,0,更大.宽度,更大.高度),新矩形(0,0,原始.宽度,原始.高度),GraphicsUnit.Pixel);