最邻近差值算法的原理:
{
wscale = src.width/dst.width; //得出宽度比
hscale = src.height/dst.height; //得到高度比
for(dy = 0; dy < dst.height; dy++) {
sy = dy * hscale + 0.5; //找到高度最近的像素 + 0.5为了判断离哪个像素点更近
for(dx = 0; dx < dst.width; dx++) {
sx = dx * wscale + 0.5; //找到最近的宽度像素
dst.data[dx + dx * dst.height] = src.data[sx + sy * src.width];
}
}
}
查找像素点最近的点进行像素拷贝
伪代码
insert_near (src, dst){
wscale = src.width/dst.width; //得出宽度比
hscale = src.height/dst.height; //得到高度比
for(dy = 0; dy < dst.height; dy++) {
sy = dy * hscale + 0.5; //找到高度最近的像素 + 0.5为了判断离哪个像素点更近
for(dx = 0; dx < dst.width; dx++) {
sx = dx * wscale + 0.5; //找到最近的宽度像素
dst.data[dx + dx * dst.height] = src.data[sx + sy * src.width];
}
}
}