png格式电脑用什么打开-电脑系统能打开png吗
1.win10照片查看器打开不了png格式,黑频的解决方法?
2.png格式的如何显示
win10照片查看器打开不了png格式,黑频的解决方法?
解决方法如下。
1、首先,我们需要使用注册表编辑器来开启Win10系统照片查看器功能,因为其实这个功能是被隐藏了,那么按下Windows徽标键+R键,打开运行命令窗口,输入“regedit”命令。
2、打开注册表编辑器之后,我们双击左侧的目录,依次打开HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft目录。
3、在Microsoft目录下,我们需要找到Windows Photo Viewer\Capabilities\FileAssociations目录项,直到看到该子目录下的一系列关键文件。
4、在FileAssociations目录下,我们对着该界面击右键,选择“新建-字符串值”菜单,如下图所示。
5、接下来就是比较关键的步骤了,如果你想要打开.jpg后缀的文件,那么数值名称要写为.jpg,数值数据写为“PhotoViewer.FileAssoc.Tiff”,然后点击“确定”按钮。
6、接下来,如果你想要使用Windows照片查看器查看.png后缀的文件,那么数值名称写为.png,数值数据还是为PhotoViewer.FileAssoc.Tiff。换句话说,只要你想更改任何格式的文件打开方式,那么数值名称就是.格式名称,数值数据一直为PhotoViewer.FileAssoc.Tiff。
7、到这里,我们就成功修改了文件的打开方式,我们可以关闭注册表编辑器,然后对着你想要打开的格式的文件击右键,选择“打开方式”,就可以看到打开程序列表中有“Windows照片查看器”。
8、或者说你可以直接双击该,将自动打开选择的打开方式,我们可以选择为“Windows照片查看器”,同时勾选“始终使用该应用打开该文件”。
9、最后,我们就会看到以前熟悉的Windows照片查看器已经出现在我们面前了,在该应用窗口中任何的打开或者关闭都非常方便。
如果还是不能解决,那就是电脑系统的问题,请到专业维修电脑店找专业人士修理。
png格式的如何显示
如何在Windows应用程序中显示jpeg和png格式的 源代码片段(zip压缩包,5k)
依赖的第三方库(zip压缩包,900k)
经常看到有人在bbs技术版面上问类似的问题,简要介绍一下怎么解决这个小问题。因为Win32 API只对bmp格式的位图提供基本支持,所以需要使用第三方库来完成这个任务。GDI+其实就是一个很好的选择,不仅支持多种格式,而且支持图像处理操作,并且做了一定的优化,接口定义也十分清晰。
这里讲的是基于Independent Jpeg Group的JpegLib和libpng.org的libpng两个库的解决方案。Jpeg和png两种格式都是带压缩的图像格式,,所不同的是jpeg使用了有损压缩,png使用了无损压缩。要在Windows程序中显示这两种需要将压缩过的在内存中还原为位图。相对而言bmp格式的处理起来就容易得多,以至于查查资料每个人都可以写一个读取bmp的模块,当然,也不完全那么容易,还要考虑多种颜色模式和bmp中4像素对齐的问题。OK,不管jpeg和png读取多么麻烦,ijg和libpng.org已经写好了读取这两种格式文件的库,这两个库都是用C语言写的,期中libpng依赖于zlib,而zlib也是用C写成。
最近做的项目需要使用jpeg和png,这里把一些代码片段(没有DEMO,单读取文件部分是完整的)分享一下,这些代码的原始版本并不是我们小组写的,但是我们进行了封装并且修复了一些bug(比如内存泄露)。本来是想做个小DEMO演示一下,但是工作量比较大(我试图同时支持vc6,vc71,vc80,dev-cpp等等)。
以下是载入jpeg的方法:C++代码 HBITMAP PictureLoader::LoadJpegPicture( const char* fileName ) { FILE * jpegFile; struct jpeg_error_mgr jerr; struct jpeg_decompress_struct cinfo; if ((jpegFile = fopen(fileName, "rb")) == NULL) { return HBITMAP(0); } cinfo.err = jpeg_std_error(&jerr); jpeg_create_decompress(&cinfo); jpeg_stdio_src(&cinfo, jpegFile); jpeg_read_header(&cinfo, TRUE); jpeg_start_decompress(&cinfo); int rowSize = cinfo.output_width * cinfo.output_components; int width=cinfo.output_width; int height=cinfo.output_height; BYTE *bmpBuffer=new BYTE[(height+1)*width*3]; BYTE **pBuffer = (*cinfo.mem->alloc_sarray)((j_common_ptr) &cinfo, JPOOL_IMAGE, rowSize, 1); while(cinfo.output_scanline < cinfo.output_height) { jpeg_read_scanlines(&cinfo, pBuffer, 1); int start=rowSize*(cinfo.output_scanline-1); for(int i = 0; i < rowSize; i++) { bmpBuffer[start+i]=pBuffer[0][i]; } } jpeg_finish_decompress(&cinfo); jpeg_destroy_decompress(&cinfo); HBITMAP bitmap = CreateBitmapFromBuffer(bmpBuffer, width, height); fclose(jpegFile); delete[] bmpBuffer; return bitmap; }
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。