缩略图怎么做,缩略图生成功能?( 二 )


return mRGB;
}使用opencv建立画布并生成缩略图通过画布需要的大小参数 , 画出白色画布 , 再对画布进行填充 。
cv::Mat makeThumbnail(vector vImage, const unsigned int rowNums, const unsigned int colNums)
{
// 判断图片时候满足条件
if (vImage.size() != rowNums * colNums) {
logging(\"Error image size not equal input size\");
logging(\"vImage length: %d, rowNums: %d, col number: %d\", vImage.size(), rowNums, colNums);
exit(-1);
}
int interval = 100;
int height = vImage[0].size().height * rowNums + interval * (rowNums + 1);
int width = vImage[0].size().width * colNums + interval * (colNums + 1);
logging(\"thumbnail size: %d * %d\", height, width);
cv::Mat thumbnail(cv::Size(width, height), CV_8UC3);
thumbnail.setTo(255);
// 进行填充
for (int i = 0; i < rowNums; ++i) {
for (int j = 0; j < colNums; ++j) {
int no = i * rowNums + j;
int widthOffset = (vImage[0].size().width + interval) * j + interval;
int heightOffset = (vImage[0].size().height + interval) * i + interval;
vImage[no].copyTo(thumbnail(cv::Rect(widthOffset, heightOffset, vImage[0].size().width, vImage[0].size().height)));
}
}
return thumbnail;
}
最后的效果

缩略图怎么做,缩略图生成功能?

文章插图
【缩略图怎么做,缩略图生成功能?】 好了 , 这篇文章的内容蜀川号就和大家分享到这里!