Mac OS PNG在WINDOWS下无法显示问题

原文地址::https://blog.csdn.net/canglang_123/article/details/39370383

 

相关文章

1、mac下png图片在windows不显示根源分析----https://www.jianshu.com/p/15e5e6187004

 

有的PNG在MAC下可以显示,但拿到WINDOWS下就不能显示。就是因为这些文件是经过xcode编译优化过的,所以无法直接查看。

 

我看网上说是 "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush
\ -revert-iphone-optimizations -q Local.png Local-standard.png" 这个,但我在自己的MAC(4.4)上没找到。

-------------------------------------------------------------------------------------------------------------------------

用下面命令查看 XCode folder 路径信息

命令: xcode-select -print-path

显示: /Applications/Xcode.app/Contents/Developer/

 -------------------------------------------------------------------------------------------------------------------------

最后用下面的命令搞定了

命令: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush -revert-iphone-optimizations /other/bbbbbc/a94@2x.png /other/bbbbbc/test11111.png

 -------------------------------------------------------------------------------------------------------------------------

批处理还原指定的图片(下面就是把/other/new/*.png 还原到 /other/new1 文件夹中)

命令: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush -dir /other/new1  -revert-iphone-optimizations -q /other/new/*.png

是的,Linux下可以使用libemf将EMF文件转换成PNG格式。libemf是一个开源的EMF文件解析库,它提供了一个API,可以在Linux系统下读取和解析EMF文件,并将其转换为其他格式。用户可以使用libemf库来开发自己的EMF文件转换工具或者将其集成到其他应用程序中。同时,libemf库也支持在WindowsMac OS X系统中使用。 以下是一个使用libemf库将EMF文件转换成PNG格式的简单示例程序: ```c++ #include <stdio.h> #include <emf/emf.h> #include <cairo/cairo.h> #include <cairo/cairo-image.h> int main(int argc, char** argv) { if(argc < 2) { printf("Usage: %s <emf_file> <png_file>\n", argv[0]); return 1; } const char* emf_file = argv[1]; const char* png_file = argc > 2 ? argv[2] : "output.png"; emf_t* emf = emf_open(emf_file); if(!emf) { printf("Failed to open EMF file: %s\n", emf_file); return 1; } int page_count = emf_get_page_count(emf); printf("EMF file has %d pages\n", page_count); for(int i = 0; i < page_count; i++) { emf_page_t* page = emf_get_page(emf, i); if(!page) { printf("Failed to get page %d\n", i); break; } cairo_surface_t* surface = cairo_image_surface_create_for_data(page->data, CAIRO_FORMAT_ARGB32, page->width, page->height, page->stride); cairo_surface_write_to_png(surface, png_file); cairo_surface_destroy(surface); emf_destroy_page(page); } emf_close(emf); return 0; } ``` 这个程序会读取命令行参数中指定的EMF文件,并将其转换为PNG格式进行保存。要编译这个程序,需要使用libemf库和cairo库,命令行如下: ``` gcc -o emf2png emf2png.c -lemf `pkg-config --cflags --libs cairo` ``` 其中,`emf2png.c`是上述代码保存的文件名,`-lemf`参数告诉编译器链接libemf库,`pkg-config --cflags --libs cairo`命令告诉编译器链接cairo库。 运行程序时,需要将EMF文件名和PNG文件名作为命令行参数传入,例如: ``` ./emf2png example.emf output.png ``` 这个程序会将EMF文件内容转换为PNG格式,并保存到指定的文件中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值