自从iOS11以后,苹果手机默认的照片格式为HEIC,该格式上传至服务器后,不能被其他应用使用,包括windows目前都无法打开。所以在服务端需要有自动处理的工具来将HEIC处理为JPG格式,下面是一个小示例,大家可以根据示例来部署FileHandler,实现文件上传后的自动转换。

主要是借用这个团队的劳动成果:https://liuziangexit.com/

代码可以在该链接下载:http://download.csdn.net/download/wuwo333/10112121

需要在bin文件夹加入下面三个lib:

HUD.dll

opencv_ffmpeg330_64.dll

opencv_world330.dll

 static void Main(string[] args){var heif_data = invoke_dll.read_heif("D:/1.heic");invoke_dll.invoke_heif_to_jpg(heif_data, 80, "D:/2.jpgtmp").Save("D:/3.jpg", ImageFormat.Jpeg);Console.ReadLine();}

invoke_dll类

  class invoke_dll{[DllImport("HUD.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)]private unsafe extern static void heif2jpg(byte* heif_bin, int input_buffer_size, int jpg_quality, byte* ouput_buffer, int output_buffer_size, byte* temp_filename);public static byte[] read_heif(string filename){FileStream fs = null;try{fs = new FileStream(filename, FileMode.Open);System.IO.BinaryReader br = new BinaryReader(fs);byte[] byte_array = br.ReadBytes((int)fs.Length);fs.Close();return byte_array;}catch (Exception ex){fs.Close();throw ex;}}public static unsafe Image invoke_heif_to_jpg(byte[] heif_bin, int jpg_quality, string temp_filename){var output_buffer = new byte[heif_bin.Length * 10];byte[] temp_filename_byte_array = System.Text.Encoding.Default.GetBytes(temp_filename);fixed (byte* input = &heif_bin[0], output = &output_buffer[0], temp_filename_byte = &temp_filename_byte_array[0]){heif2jpg(input, heif_bin.Length, jpg_quality, output, heif_bin.Length * 10, temp_filename_byte);}return Image.FromStream(new MemoryStream(output_buffer));}}

HEIC格式转换为jpg(C#)相关推荐

  1. 如何把heic格式转换为jpg?这几种方法建议收藏

    如何把heic格式转换为jpg?使用过苹果手机的小伙伴应该都知道,现在的苹果手机上默认的图片格式是HEIC.凡是使用苹果手机拍摄出来的照片,就会自动存储为HEIC格式.但是,当我们将这些照片传输到电脑 ...

  2. 如何把heic格式转换为jpg

    如何把heic格式转换为jpg?大家在出去游玩的时候,通常我们都会用手机拍照的方式记录旅途中的点点滴滴,接着会分享到各个社交平台或者储存到到电脑中留着以后回忆赏析,一方面我们分享自己的生活,一方面可以 ...

  3. 怎么通过苹果HEIC图片转换器将heic格式转换为其他格式?

    相信苹果用户对于heic图片并不陌生,十三日凌晨刚刚举行了今年的苹果发布会,并没有提及到系统更新的话题,所以目前最新系统依旧是iOS11,前两年更新的系统对于拍照格式的变化果粉有目共睹,可以说这个系统 ...

  4. HEIC文件怎么打开,如何将HEIC格式转换为JPG格式

    现在使用苹果手机的小伙伴还是有非常多的吧,虽然说他的价格比较高,但是国内还是有一大批的忠实粉丝的,不过最近也是出了一些事情,导致了一些型号的手机不能发售,不过影响不大,还是可以正常购买的.不过使用苹果 ...

  5. php文件怎么转换jpg文件怎么打开方式,heic文件如何打开 heic格式转换JPG方法【步骤教程】...

    heic文件怎么打开?heic格式怎么转换JPG?自iOS 11正式版发布,iPhone 7及其以上的新机型在拍摄照片后,图片自动保存成HEIC格式.HEIC是一种高保真画质的图片封装格式,这种格式在 ...

  6. heic格式怎么转化jpg?教您几招快速转化

    heic格式怎么转化jpg?因为当设备或软件不支持HEIC格式:一些老旧的设备或软件可能无法识别或处理HEIC格式的照片,因此需要将其转换成JPG格式才能正常查看和编辑.还有当HEIC文件过大:相对于 ...

  7. heic格式的图片怎么转换为jpg格式?

    heic格式的图片怎么转换为jpg格式?我们都知道手机有两种系统,一种是安卓系统,一种是苹果系统,这两种不同系统上的图片格式也是不一样的.安卓系统常用的格式是jpg,而苹果系统的图片也有着自己的专属格 ...

  8. HEIC格式 图像 转换为jpg

    今天用手机拍照做了个小数据集,导出发现是heic格式图像,网上有在线的图像转换,不过需要一张一张转换,且限制次数,因此用python实现这个 import whatimage import pyhei ...

  9. iPhone中的heic格式怎么查看,heic文件怎么打开

    关于heic格式,那最大的疑问就是在电脑和安卓中都是无法直接查看heic格式的,因为格式不兼容的问题,对于很多女生来说,可能是一个×××烦,因为平时会拍很多照片,手机内存的限制,我们会将其传到电脑上保 ...

最新文章

  1. WPF 之 调用线程必须为 STA,因为许多 UI 组件都需要
  2. 关于IBM Lotus的JAVA代理进入jar包的说明
  3. 一场面试,用20秒介绍自己顺便教训了领导
  4. DevExpress控件之GridControl、GridView
  5. UIButton拖动响应事件,距离问题
  6. OpenGL Shader Key Points (3)
  7. 微智魔盒骗局_微智魔盒官宣
  8. Linux 双网卡绑定方法
  9. 在同一台服务器上安装两个数据库
  10. 北漂九年 ,雷军终于买房了:壕掷52亿元
  11. 智能算法应用:基于灰狼优化的最大熵图像多阈值分割 - 附代码
  12. sci计算机论文发表论文格式,SCI论文发表的格式以及字体的要求是什么?
  13. 海马玩模拟器——搭建React Native环境
  14. Teredo 原理概述-IPv6隧道技术
  15. Windows Media Player Network Sharing Service 启动失败
  16. 堆分配存储结构串的实现|C++
  17. 如何确定SAP系统的NetWeaver版本、ERP或S/4HANA的版本
  18. tar 慢 加快_加快慢的Outlook 2007
  19. 谢启鸿老师思考题及解答合集
  20. Linux/Unix操作系统mac地址怎么查

热门文章

  1. 2017年php还能火多久,网红品牌 还能火多久?
  2. matlab解无解析解微分方程组,数学应用软件作业6 用Matlab求解微分方程(组)的解析解和数值解...
  3. 华为离职副总裁给任正非的辞职信【受益很多】
  4. D3DERR内容详细翻译
  5. redis的cluster集群模式
  6. python调用浏览器
  7. INFP型人格适合选择哪些专业?
  8. VisualC++ 2010 Express 学习版官网下载安装及使用
  9. 【CC2530/ZigBee】任务①
  10. linux系统下连不上网,linux系统,连不上网怎么办?请详述