求教~关于位图放大失真的原因

时间:2021-12-05 15:23:45
  一般位图缩小不会失真  放大绝对会失真  放大失真的原因是什么求教~~ ?  
还有一个问题   256色的图片是不是每个像素只有256种的颜色  ?  那么24位或32位图片每个像素有多少种类的颜色?
我对于图像还不是很熟悉求教~

6 个解决方案

#1


对位图进行放大和缩小处理都会导致失真,因为不同的插值运算都会降低图像的质量。
从另一个角度来讲,把一个图片fa(,)先缩小成 fb(,),再放大成 fc(,),因为在缩小的过程中,fa(,)的信息已经损失了一部分,所以fc(,)不可能达到fa(,)的信息量,体现出来就是质量下降。这是没有办法的。用我BLOG里的图像锐化算法可能解决放大后模糊化的问题,但是 fa(,)里面的信息没有办法复原。
有空去看看JPEG的压缩原理,很有意思。
问题2:256色有两种,一种是图像空间只有256色,另一种是从24位色彩表中统计出图像上使用最多或最接近的256种颜色来编码。24位色是3个通道,分别为 RGB,每个通道有256个色(2^8),共24位(2^24)。因为接近人眼的分辨率极限,所以也称为真彩色。
有空去看看数字图像基本知识的书,有详细的解释
256色之类的内容可以不太关注,这是当年显卡运算能力太差才不得已使用的方法

#2


SetStretchBltMode(HALFTONE); 
StretchBlt
效果很好
基本上无失真

#3


失真是什么意思,看起来像格子?这个是无法避免的,你图像本来就只有那么多信息,放大不可能完美的造一些原来没有的信息。

#4


放大失真是肯定的,不过主要跟算法有关。
双线性差值效果好点。

#5


跟拉伸算法有关

你想,不管你采用什么算法,肯定要插一些数进去,这就是失真的原因

加入你放大的是整数倍,如果算法简单的把相邻像素拷贝,那确实不失真,不过你会看到很明显的锯齿
最明显的例子是,你用Windows自带的画图以及PS,把一个bmp同时都放大一倍,PS得到的结果会漂亮的多,但是PS失真了……

#6


放大缩小都会导致失真,都需要插值算法,只是有的算法失真较小

#1


对位图进行放大和缩小处理都会导致失真,因为不同的插值运算都会降低图像的质量。
从另一个角度来讲,把一个图片fa(,)先缩小成 fb(,),再放大成 fc(,),因为在缩小的过程中,fa(,)的信息已经损失了一部分,所以fc(,)不可能达到fa(,)的信息量,体现出来就是质量下降。这是没有办法的。用我BLOG里的图像锐化算法可能解决放大后模糊化的问题,但是 fa(,)里面的信息没有办法复原。
有空去看看JPEG的压缩原理,很有意思。
问题2:256色有两种,一种是图像空间只有256色,另一种是从24位色彩表中统计出图像上使用最多或最接近的256种颜色来编码。24位色是3个通道,分别为 RGB,每个通道有256个色(2^8),共24位(2^24)。因为接近人眼的分辨率极限,所以也称为真彩色。
有空去看看数字图像基本知识的书,有详细的解释
256色之类的内容可以不太关注,这是当年显卡运算能力太差才不得已使用的方法

#2


SetStretchBltMode(HALFTONE); 
StretchBlt
效果很好
基本上无失真

#3


失真是什么意思,看起来像格子?这个是无法避免的,你图像本来就只有那么多信息,放大不可能完美的造一些原来没有的信息。

#4


放大失真是肯定的,不过主要跟算法有关。
双线性差值效果好点。

#5


跟拉伸算法有关

你想,不管你采用什么算法,肯定要插一些数进去,这就是失真的原因

加入你放大的是整数倍,如果算法简单的把相邻像素拷贝,那确实不失真,不过你会看到很明显的锯齿
最明显的例子是,你用Windows自带的画图以及PS,把一个bmp同时都放大一倍,PS得到的结果会漂亮的多,但是PS失真了……

#6


放大缩小都会导致失真,都需要插值算法,只是有的算法失真较小