C#的图像放大问题

最近在写工具的时候发现了一个很恶心的问题,当用DrawImage做图像放大的时候C#的默认放大算法不是NearestNeighbor算法,而Java Swing的drawImage放大算法默认为NearestNeighbor算法,解决方法是:

g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;

本以为这样就解决问题了,结果放大出来的图像左上顶点还少了半个像素,也就是说如果放大图像是8倍的话,那么放大图像的宽高各少4个像素,不知道C#为什么这样做,据说是因为浮点与整形的舍入问题造成的,果真没有Java方便啊,解决方法是:

g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half;

时间: 2024-09-29 21:29:55

C#的图像放大问题的相关文章

C#图像放大问题解决方法

放大|解决|问题    最近在写工具的时候发现了一个很恶心的问题,当用DrawImage做图像放大的时候C#的默认放大算法不是NearestNeighbor算法,而Java Swing的drawImage放大算法默认为NearestNeighbor算法,解决方法是:         g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;         本以为这样就解决问题了,结果放大出来

写了一个实用的图像放大缩小程序,但是动画GIF转换后不会显示了,只有第一帧

写了一个实用的图像放大缩小程序,但是动画GIF转换后不会显示了,只有第一帧 代码如下,有没做过GIF转换的,提提建议一下,谢谢.  import java.awt.Canvas; import java.awt.Component; import java.awt.Graphics; import java.awt.Image; import java.awt.image.AreaAveragingScaleFilter; import java.awt.image.BufferedImage;

无需通电而放大iPhone的图像与声音的神奇底座

Hivedock是一款神奇的iPhone底座,没有任何电子元件也无需通电,只需要把您的iPhone放入这款底座,立刻就可以将图像放大至两倍,连声音外放都可以放大.无论是看电影还是玩愤怒的小鸟都不在话下.&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   " 也不需要从你的iPhone的内置电池获取电源,是纯绿色环保的,当iOS的蓝牙鼠标一旦实现,iPhone配备了我们这款底座,再连上蓝牙键盘,绝对可以成

Photoshop 图像去底技巧集粹

技巧 在 Photoshop 中抠像,最原始的做法是用 Magic Wand Tool 魔术棒将背景中相近颜色的区域选出来删掉,然后用 Eraser Tool 橡皮擦工具仔细擦去背景中剩余的一些碎枝末叶.或者就用 Lasso 套索工具勾勒出图像中主体部分的轮廓,将得到的选区反选后删去背景. 而我们下面总结的方法,有的是传统工具的发挥,有的是 Photoshop 新增工具的利用,还有的是各种图像处理技巧的综合.而我们的目的就是尽量以最简洁的操作获取最有效的成果. 方法一:磁性套索工具 当需要处理的

J2ME插值算法实现图片的放大缩小

前段时间接触了一些数字图像处理的问题,在1位师兄的指导下,在j2me平台,完成了一些基本的2D图像处理算法.就当是对这段知识做一下总结,决定把这些算法写出来,和各位朋友共同探讨.这篇文章先介绍图像放大缩小的实现,程序是以Nokia S40的机器为平台实现的. 1.实现图形缩放的基本思想: 图像的变形变换,简单的说就是把源图像每个点坐标通过变形运算转为目标图像相应点的新坐标,但是这样会导致一个问题就是目标点的坐标通常不会是整数.所以我们在做放大变换时,需要计算生成没有被映射到的点:而在缩小变换时,

用Delphi实现图像放大镜

在一些常用的看图软件中都带有一个可以放大局部图像的功能,本实例就是为模仿这一功能开发的. 向窗体上添加两个TImage组件,其中一个TImage组件的Name属性设置为Image1,它充当原图片显示的载体.另一个TImage组件的Name属性设置为Image2,它可以显示放大后的图像.添加组件后的窗体如图1所示. 图1 添加组件后的窗体 本例的核心是StretchBlt函数,利用StretchBlt函数实现局部图像放大,响应代码如下: procedure TForm1.Image1MouseMo

Photoshop中如何快速放大缩小

  1.开Photoshop,导入想要修改的图片.我们就先来重温一下老式放大.缩小的方式方法.点击放大工具,然后点击图像放大,想缩小的话再点击上边缩小工具,再点击图像然后缩小.但是这样换来换去未免也太麻烦了吧. 2.在咱们学习快速放大并移动图像的方法,在当前图像中,不论图像处于何种编辑情况下,按Ctrl + 空格键,不松手,赶紧观察一下看看,看看鼠标状态是不是变成放大镜放大状态了. 3.点击鼠标左键----每当点击一次,就放大一次;按住鼠标左键不松手,图像就一直变大;按下鼠标左键并拖动,图像快速

PS CC中图像大小工具详解

  今天的这篇文章讲的是大家经常用到的图像大小工具,PS CC中对这个工具进行了改进和更新,让我们在处理图片大小的时候,能够更好的保持原图的真实度.让我们一起来看下吧. PS的核心是处理图像(通常是位图).如果你能够自由操纵你创建的位图,将会收到意想不到的效果. 在改进之前,如果你的图片比较小,在处理图像大小时就会遇到困难.你可以放大图像(重新采样),但是图像的像素只有那么多,放大图像会使它变得模糊失真,这样就降低了图片的品质.处理这个问题的方法之一是使用滤镜>锐化,可以让失真后的图像恢复一点清

图像放缩------双立方插值

一:数学原理 如果已知一个函数f(x)以及它在x=0,x=1处的导数,那么函数可以在[0,1]之间插值,当函数 表达为三次多项式时我们称之谓立方插值.一个三次多项式及其导数:         f(x) =ax^3 +bx^2 + cx + d          f'(x)=3ax^2 + 2bx +c 多项式在x=0, x=1处值及其导数值为:          f(0)= d;          f(1)= a + b + c + d;          f'(0)=c          f'