VC++如何判断图片是否为空白图片以及读取当前图片大小

VC++如何判断图片是否为空白图片以及读取当前图片大小,第1张

在 VC++ 中,可以使用 MFC 库提供的 CImage 类来判断是否为空白以及读取当前大小。

判断是否为空白

要判断一张是否为空白,可以使用 CImage 类的 GetSize() 方法获取的大小,然后遍历的每个像素点,判断像素点的 RGB 值是否为 255(即白色)。如果所有像素点的 RGB 值都为 255,则说明该为空白。

示例代码如下:

CImage image;

imageLoad(_T("testjpg")); // 加载

// 获取大小

int width = imageGetWidth();

int height = imageGetHeight();

bool isBlank = true; // 是否为空白

// 遍历每个像素点

for (int i = 0; i < width; i++) {

for (int j = 0; j < height; j++) {

// 获取像素点的 RGB 值

COLORREF color = imageGetPixel(i, j);

int r = GetRValue(color);

int g = GetGValue(color);

int b = GetBValue(color);

// 判断像素点的 RGB 值是否为白色

if (r != 255 || g != 255 || b != 255) {

isBlank = false;

break;

}

}

if (!isBlank) {

break;

}

}

if (isBlank) {

// 空白

}

else {

// 非空白

}

上述代码中,我们首先使用 CImage 类的 Load() 方法加载了一张,然后使用 GetSize() 方法获取了的大小。接着,我们使用双重循环遍历了的每个像素点,并判断像素点的 RGB 值是否为白色。如果所有像素点的 RGB 值都为白色,则将 isBlank 标记为 true,否则将其标记为 false。最后,根据 isBlank 的值来判断是否为空白。

需要注意的是,这种判断方式并不是非常准确,因为有可能存在非常浅的颜色(比如灰色)或者透明度不为 0 的像素点。因此,判断是否为空白需要根据具体的应用场景进行具体分析和处理。

读取当前大小

要读取一张的大小(即占用硬盘容量大小),可以使用 CImage 类的 GetFileSize() 方法获取。该方法返回的是占用硬盘容量大小(单位为字节),需要将其转换为 KB 才能表示为人类可读的格式

示例代码如下:

CImage image;

imageLoad(_T("testjpg")); // 加载

// 获取大小(单位为字节)

int fileSize = imageGetFileSize();

// 转换为 KB

double fileSizeKB = fileSize / 10240;

// 输出大小(保留两位小数)

printf("The size of the image is %2f KB\n", fileSizeKB);

PS 弄这个效果非常简单,什么神马都不会影响到

在PS里,你只要按照原片比例放大裁切框,背景色是白色,就是这个效果了的,,反之反 *** 作一次就恢复到了原来的效果了。去试试吧,和容易的

fangfang

function correctPNG()

{

for(var i=0; i<documentimageslength; i++)

{

var img = documentimages[i]

var imgName = imgsrctoUpperCase()

if (imgNamesubstring(imgNamelength-3, imgNamelength) == "PNG")

{

var imgID = (imgid) "id='" + imgid + "' " : ""

var imgClass = (imgclassName) "class='" + imgclassName + "' " : ""

var imgTitle = (imgtitle) "title='" + imgtitle + "' " : "title='" + imgalt + "' "

var imgStyle = "display:inline-block;" + imgstylecssText

if (imgalign == "left") imgStyle = "float:left;" + imgStyle

if (imgalign == "right") imgStyle = "float:right;" + imgStyle

if (imgparentElementhref) imgStyle = "cursor:hand;" + imgStyle

var strNewHTML = "<span " + imgID + imgClass + imgTitle

+ " style=\"" + "width:" + imgwidth + "px; height:" + imgheight + "px;" + imgStyle + ";"

+ "filter:progid:DXImageTransformMicrosoftAlphaImageLoader"

+ "(src=\'" + imgsrc + "\', sizingMethod='scale');\"></span>"

imgouterHTML = strNewHTML

i = i-1

};

};

};

if(navigatoruserAgentindexOf("MSIE")>-1)

{

windowattachEvent("onload", correctPNG);

};

搞定

PS新建了个空白5M,怎么保存成jpg格式后就只有20K了!

嗯,jpg格式的是牺牲质量换取更大的压缩空间, 换种格式吧,个人推荐用这种tiff这种格式

为什么用PS新建空白后保存格式有限

三种办法

1、将鼠标在左侧的工具栏上点一下“拖动”图标,然后“文件”再“另存为”

2、“文件”-“存储为web所用格式”

3、ps程序问题,重装ps安装程序

新建立PS空白如何保存为bmp

你的制作好后点击文件下的另存为,选择保存格式为BMP就可以了。第二个就是BMP格式的。

怎么把word中的保存成jpg格式

选中文档中的,将从文档拉到桌面,会出现 Activd Desk的提示:要将这些项目添加到 Activd Desk中,需要保存的副本,是否继续? 点击 是 出现另存为对话框,在文件名后加上JPG 再保存,就可以了。希望能帮到你 。

怎样把wodr保存成JPG格式的?

呵呵 装个PS 直接 打开 WODR文档 然后 复制 在 PS里 直接建个新的图层 直接粘贴 就OK 保存 JPEG 格式 很方便的 ·

ps后的为什么不能保存成jpg格式啊

把PhotoShop的颜色模式改为8位以下就行了, 菜单 模式 调整 如果实在不行存成其它格式,可以用acdsee等软件转换 到您需要的格式

右键新建里有一项bmp图像,新建了一个bmp图像是空白的,怎么使用这种空白?

bmp图像是WINDOWS画图程序的格式,叫做位图文件,因为色彩表现力丰富所以文件一般来说比较大,当放大以后图像会虚化,并且显示出像素点,通常称做马赛克,JPEG格式的文件放大也会出现同样的情况,因为此类文件是有损压缩格式文件,一些关于颜色信息的关联信息但无损颜色的一般表现,所以文件一般就比较小,所以在网上通常会见到JPEG格式,而很少见到BMP,主要就是因为文件大小的原因。以上的说明供你参考

ps中怎样保存成JPG格式

在菜单栏选择- 文件(file)- 目标另存为(save as)- 在d出的窗口最后一行的格式(format)中选择jpeg格式

用PS做了个,存成JPG格式,然后就打不开了怎么回事

你把它保存成桌面了吗?

Adobe Photoshop CS 80做完怎么保存成JPG格式的

另保存的时候在格式里选

额。。。你制作的外面还有东西,所以造成的尺寸过大。试着把设计的图案放在画板上,然后导出jpg的时候选择画板。或者用轮廓模式检视一下有没有漏下的东西没有删掉,把它删了导出也可以。

以上就是关于VC++如何判断图片是否为空白图片以及读取当前图片大小全部的内容,包括:VC++如何判断图片是否为空白图片以及读取当前图片大小、照片两边是空白的,这是怎么弄得、给我一张透明的空白图片 不要告诉我做法 直接给我!!急急急!!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9770068.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存