精华内容
下载资源
问答
  • HEIF转换器 高效图像格式(HEIF)到其他图像格式的转换器 可用格式 JPEG格式 PNG WEBP 下载 Gradle allprojects { repositories { .. . maven { url ' https://jitpack.io ' } } } dependencies { ...
  • libheif是ISO / IEC 23008-12:2017 HEIF和AVIF(AV1图像文件格式)文件格式的解码器和编码器。 HEIF和AVIF是分别采用HEVC(h.265)或AV1图像编码的新图像文件格式,以实现当前可能的最佳压缩率。 libheif使用...
  • 适用Windows10 的HEVC/HEIF/HEIC 离线安装包,方便在Windowns10下查看IOS系统拷贝过来的HEIC格式图片
  • HEIF编码器插件当前支持HEIF单/静态图像解码以及HEIC图像编码。 解码还支持10/12位深度(大于正常的8位)的 HEIF图像。 它支持iOS 9 + / macOS 10.11+设备,而无需依赖Apple的Image / IO框架。 对于iOS 8 + / ...
  • heif测试文件

    2018-03-07 11:44:51
    heif/heic 包hevc格式的标准测试文件,非常好用。最新Mac Iphone支持的格式
  • HEVC VideoExtension_1.0.42701.0/HEIF ImageExtension_1.0.42621.0/CopyTrans HEIC for Windows v1.009/X265 3.5+16-7955046.rar 根据系统架构及需求选择扩展插件安装。本资源包含以下内容: ①HEVC Video ...
  • 高效图像文件格式(HEIF)符合性文件候选 该存储库包含用于高效图像文件格式(HEIF)一致性测试的候选文件。 这些文件是使用提供的HEIF源代码生成的。 比特流和文件的描述可以在文件中找到。 可以在找到与MPEG贡献...
  • HEIF-Utility

    2017-12-11 21:36:39
    HEIF 实用工具 - 在 Windows 上查看/转换 Apple HEIF 文件
  • HEIF 照片格式转化

    2019-02-27 14:03:26
    用于苹果手机照片格式HEIF转换为传统的JPG等,目前只能支持单个照片的处理。
  • nokia heif writer

    2020-02-05 19:51:14
    nokia heifwrite 源码 git仓下载打包,未编译; 供参考,git 无法访问替代。
  • 主要介绍了在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 据此推断:各位的项目中,会遇到 Heif格式图片 需要兼容的需求。 笔者目前参与的商业项目,也被市场要求对Heif图片进行适配。这篇文章,记录了我在这件事情上 折腾 的过程。 好玩系列是我进行 新事物实践 、 尝试...

    前言

    目前市面上的成熟的APP,其用户体系中均存在 设置头像 的功能,考虑到尺寸规范问题,一般会加入 图片裁剪 功能;
    考虑到页面UI统一度问题,甚至会在应用内实现 相册功能。据此推断:各位的项目中,会遇到 Heif格式图片 需要兼容的需求。

    笔者目前参与的商业项目,也被市场要求对Heif图片进行适配。这篇文章,记录了我在这件事情上 折腾 的过程。

    好玩系列是我进行 新事物实践尝试创造 的记录,了解更多

    背景

    HEIF格式的全名为 High Efficiency Image File Format(高效率图档格式),是由动态图像专家组(MPEG)在2013年推出的新格式,了解更多

    了解Heif整个项目

    测试文件

    笔者注:印象中,iOS系统大约在16年就全面支持这一类型的文件了,而Android大约是三年前,在Android P推出的时候,宣布原生支持Heif文件

    随着市场上的Android机器已经大面积过渡到 Android Q,从这一点看,确实到了该适配的阶段了。

    目标,至少实现Android P及其以上的适配,尝试向更低版本适配

    ISO Base Media File Format

    HEIF格式是基于 ISO Base Media File Format格式衍生出来的图像封装格式,所以它的文件格式同样符合ISO Base Media File Format (ISO/IEC 14496-12)中的定义( ISOBMFF)。

    文件中所有的数据都存储在称为Box的数据块结构中,每个文件由若干个Box组成,每个Box有自己的类型和长度。在一个Box中还可以包含子Box,最终由一系列的Box组成完整的文件内容,结构如下图所示,图中每个方块即代表一个Box。

    我们常见的MP4文件同样是ISOBMFF结构,所以HEIF文件结构和MP4文件结构基本一致,只是用到的Box类型有区别。

    HEIF文件如果是单幅的静态图片的话,使用item的形式保存数据,所有item单独解码;如果保存的为图片序列的话,使用track的方式保存。

    作者:金山视频云
    链接:https://www.jianshu.com/p/b016d10a087d
    来源:简书
    著作权归作者所有

    通过ContentResolver查询Heif格式文件

    系统通过ContentProvider向其他应用暴露图片等内容信息。目前 尚未查询相关文档 ,未确定 Android相册向其他应用提供了Heif文件查询支持

    通过查询我们得到Heif文件的 主要的 扩展名为 heicheif.

    ContentResolver contentResolver = context.getContentResolver();
    String sort = MediaStore.Images.Media.DATE_MODIFIED + " desc ";
    String selection = MediaStore.Images.Media.MIME_TYPE + "=?";
    String[] selectionArgs = new String[]{"image/heic"};
    
    String[] projection = {MediaStore.Images.Media._ID, MediaStore.Images.ImageColumns.BUCKET_DISPLAY_NAME,
            MediaStore.Images.ImageColumns.DATE_MODIFIED};
    
    Cursor cursor = contentResolver.query(
            MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
            projection,
            selection,
            selectionArgs,
            sort
    );
    

    我们在测试文件中只找到了 heic, 就先只测一种。

    我们发现,系统支持的情况下,是可以查询到数据的。PS,导入数据到手机后,最好重启下

    解码与图片显示

    我们忽略掉Android版本相应的适配问题,假定已经得到了相应文件的 Uri, 项目中Glide-4.12.0版本已经处理了适配。

    我们去探索一下,是自行添加的解码器,还是依赖于系统API

    ExifInterfaceImageHeaderParser 提及内容

    /**
     * Uses {@link ExifInterface} to parse orientation data.
     *
     * <p>ExifInterface supports the HEIF format on OMR1+. Glide's {@link DefaultImageHeaderParser}
     * doesn't currently support HEIF. In the future we should reconcile these two classes, but for now
     * this is a simple way to ensure that HEIF files are oriented correctly on platforms where they're
     * supported.
     */
    

    文档中提到,系统版本 O_MR1+ 中已经支持了 HEIF,但是目前的 DefaultImageHeaderParser 还不支持,未来会综合考虑这两个类(系统Exif相关类和DefaultImageHeaderParser),但目前,这是一个简单的方式,确保HEIF在受支持的平台上被正确处理图片方向。

    Glide 类中提及的内容

    // Right now we're only using this parser for HEIF images, which are only supported on OMR1+.
    // If we need this for other file types, we should consider removing this restriction.
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
      registry.register(new ExifInterfaceImageHeaderParser());
    }
    

    目前仅用于解析HEIF文件的头信息。

    我们知道,Glide加载是先获取流,解析头信息,利用对应的解码器处理。而加载此类性质的图片时,是先解码为Bitmap,在进行 装饰 , 而Bitmap的解码是利用了系统API,见BitmapFactory.

    所以,如果项目中使用了Glide(似乎高于4.10.0即具有功能,没有仔细查阅),而手机也支持了HEIF,那么应用就可以支持Heif显示了。

    Glide官方对于 自定义解码器 还是持保守态度的。但是我们要试一下,尝试在Glide中接入Heif解码器。


    至此,我们已经完成了基本目标:

    • 借用平台自身兼容性(当然也可以自己根据版本适配查询语句),利用 ContentResolver 获取 Heif格式的图片
    • 借助Glide已有的实现,直接在支持的平台版本上解码、构建Bitmap、构建相应Drawable、呈现。

    Glide官方提供了支持,是一件值得庆幸的事情。

    因为项目中仅使用了Glide,笔者没有继续对Fresco展开调研。而Fresco作为一款优秀的图片加载框架,并且有庞大的社区支持,盲目推测其亦实现了内部支持。

    接下来展开向更低版本适配的尝试。当然,这 仅限于 解码、呈现环节,并不考虑 ContentProviderContentResolver 在低版本上对于Heif格式文件的适配。


    尝试向Glide接入Heif解码器

    将官方测试数据集导入 支持Heif 的小米、华为部分机型后,我发现部分图片未被系统支持,提示文件损毁或者不受支持。

    另外,冲着好玩,我值得折腾一下。

    必须申明:下面的实践只是从好玩角度出发的,并未考虑 健壮性和全场景覆盖。

    我计划将Heif文件放入Assets资源,按照我们对Glide的了解,其解码路径起始点是:android.content.res.AssetManager$AssetInputStream

    @GlideModule
    class CustomGlideModule : AppGlideModule() {
        override fun registerComponents(context: Context, glide: Glide, registry: Registry) {
            if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O_MR1) {
                registry.register(object : ImageHeaderParser {
                    override fun getType(`is`: InputStream): ImageHeaderParser.ImageType {
                        return ImageHeaderParser.ImageType.UNKNOWN
                    }
    
                    override fun getType(byteBuffer: ByteBuffer): ImageHeaderParser.ImageType {
                        return ImageHeaderParser.ImageType.UNKNOWN
                    }
    
                    override fun getOrientation(`is`: InputStream, byteArrayPool: ArrayPool): Int {
                        return ImageHeaderParser.UNKNOWN_ORIENTATION
                    }
    
                    override fun getOrientation(byteBuffer: ByteBuffer, byteArrayPool: ArrayPool): Int {
                        return ImageHeaderParser.UNKNOWN_ORIENTATION
                    }
    
                })
            }
    
            registry.prepend(
                    Registry.BUCKET_BITMAP,
                    InputStream::class.java, Bitmap::class.java, CustomBitmapDecoder(context, glide.bitmapPool)
            )
        }
    
    }
    

    这样,我们会得到这样一条解码路径:

    DecodePath{ 
    	dataClass=class android.content.res.AssetManager$AssetInputStream, 
    	decoders=[
    		osp.leobert.android.heifdemo.CustomBitmapDecoder@5c4ee9e,
    		com.bumptech.glide.load.resource.bitmap.StreamBitmapDecoder@1c1ed7f
    	],
    	transcoder=com.bumptech.glide.load.resource.transcode.BitmapDrawableTranscoder@529014c
    }
    

    接下来我们需要考虑解码器的接入。

    Nokia的SDK

    Nokia的Heif库:链接

    草率了,经过一番源码研读,发现只有读写过程封装,相当于只有 最基础 的协议封包、拆包,想要真正在Android上使用,还有很多事情要处理。

    a1.jpeg

    看下Android P

    我们知道,Android P原生支持了Heif,查一下资料,其底层支持如下:


    一番思考后,发现 成本过大

    再附上 Glide 适用的Decoder:

    class CustomBitmapDecoder(val context: Context, val bitmapPool: BitmapPool) : ResourceDecoder<InputStream, Bitmap> {
        override fun handles(source: InputStream, options: Options): Boolean {
            return true
        }
    
        @Throws(IOException::class)
        fun toByteArray(input: InputStream): ByteArray? {
            val output = ByteArrayOutputStream()
            copy(input, output)
            return output.toByteArray()
        }
    
        @Throws(IOException::class)
        fun copy(input: InputStream, output: OutputStream): Int {
            val count = copyLarge(input, output)
            return if (count > 2147483647L) {
                -1
            } else count.toInt()
        }
    
        @Throws(IOException::class)
        fun copyLarge(input: InputStream, output: OutputStream): Long {
            val buffer = ByteArray(4096)
            var count = 0L
            var n = 0
            while (-1 != input.read(buffer).also { n = it }) {
                output.write(buffer, 0, n)
                count += n.toLong()
            }
            return count
        }
    
        override fun decode(source: InputStream, width: Int, height: Int, options: Options): Resource<Bitmap>? {
    
            val heif = HEIF()
            try {
                val byteArray = toByteArray(source)
                // Load the file
                heif.load(ByteArrayInputStream(byteArray))
    
                // Get the primary image
                val primaryImage = heif.primaryImage
    
                // Check the type, assuming that it's a HEVC image
                if (primaryImage is HEVCImageItem) {
    //                val decoderConfig = primaryImage.decoderConfig.config
    
                    val imageData = primaryImage.itemDataAsArray
                    // Feed the data to a decoder
    
                    // FIXME: 2021/3/23 find a decoder to generate Bitmap when not upon Android P
                    return BitmapResource.obtain(
                            BitmapFactory.decodeByteArray(imageData, 0, imageData.size),
                            bitmapPool
                    )
                }
            } // All exceptions thrown by the HEIF library are of the same type
            // Check the error code to see what happened
            catch (e: Exception) {
                e.printStackTrace()
            } finally {
                heif.release()
            }
            return null
        }
    }
    

    如果找到了一个解码器,在Android P以下支持解码或转码,封装为Bitmap,就 可以在低版本上适配 了。当然还需要完成:适配所有可能的解码路径头信息处理 工作。

    这次尝试, 以失败告终

    居然翻车了,压压惊

    jljt.gif

    遐想

    力大砖飞?集成ImageMagick之类的库,直接实现图片转码,成本有点过大了,先不折腾。

    本次实践,我们实现了基本目标,高级目标因为初步调研不充分以失败告终,但是也增长了知识。

    展开全文
  • heif heic 的区别The High Efficiency Image Format (HEIF) is used by Apple’s iPhone and is also coming to Google’s Android P. It’s a modern replacement for JPEG, and often has the .HEIC file ...
    heif heic 的区别

    heif heic 的区别

    The High Efficiency Image Format (HEIF) is used by Apple’s iPhone and is also coming to Google’s Android P. It’s a modern replacement for JPEG, and often has the .HEIC file extension.

    苹果的iPhone使用了高效图像格式(HEIF),谷歌的Android P也采用了高效图像格式(HEIF)。它是JPEG的现代替代品,并且通常具有.HEIC文件扩展名。

    什么是HEIF? (What is HEIF?)

    The HEIF format produces images with a smaller file size and higher image quality than the older JPEG standard. In other words, HEIF is just better than JPEG.

    与旧的JPEG标准相比,HEIF格式产生的图像具有较小的文件大小和较高的图像质量。 换句话说,HEIF比JPEG更好。

    HEIF achieves this through use of more advanced compression methods. This new image format is based on the High Efficiency Video Compression format, also known as HEVC or H.265.

    HEIF通过使用更高级的压缩方法来实现这一目标。 这种新的图像格式基于高效视频压缩格式,也称为HEVC或H.265。

    While this format made its consumer debut on Apple’s iPhones with iOS 11, it isn’t an Apple technology. It’s based on the Moving Picture Experts Group (MPEG) standards, and will arrive on Android P as well. According to the MPEG and Apple, HEIF images should be half the size of a JPEG image file, but with the same—or better—picture quality.

    尽管这种格式在带有iOS 11的Apple iPhone上首次亮相,但它不是Apple技术。 它基于运动图像专家组(MPEG)标准,并且也将在Android P上使用。 根据MPEG和Apple,HEIF图像的大小应为JPEG图像文件的一半,但图像质量应相同或更好。

    But HEIF isn’t just about file sizes. HEIF images offer a variety of features that aren’t available in JPEG, like transparency and 16-bit color. The iPhone’s camera can capture photos in 10-bit color, so HEIF’s 16-bit color is a worthwhile upgrade over JPEG’s 8-bit color.

    但是,HEIF不仅仅是文件大小。 HEIF图像提供了JPEG无法提供的各种功能,例如透明度和16位彩色。 iPhone的相机可以捕获10位彩色的照片,因此HEIF的16位彩色是JPEG的8位彩色的值得升级。

    You can apply edits like rotation, cropping, titles, and overlays to HEIF images. Such edits are stored without altering the underlying image. This means you can undo those edit later on, should you want to.

    您可以对HEIF图像应用诸如旋转,裁剪,标题和覆盖之类的编辑。 这样的编辑在不更改基础图像的情况下被存储。 这意味着您以后可以撤消那些编辑。

    什么是HEIC文件? (What is an HEIC File?)

    If you take a photo with Apple’s iPhone or iPad, that photo is saved in an image file with the .HEIC file extension. HEIC is a container format that can store sounds and images encoded with the HEVC format.

    如果您使用Apple的iPhone或iPad拍照,则该照片将保存在扩展名为.HEIC的图像文件中。 HEIC是一种容器格式,可以存储使用HEVC格式编码的声音和图像。

    For example, if you take a photo with Live Photos enabled on an iPhone, you’ll get a .HEIC file that contains multiple photos and a recorded sound file—everything that makes up the live photo. On older versions of Apple’s iOS, or if you select the “Most Compatible” option, those live photos are stored as a .JPG still image file and a three-second .MOV video file.

    例如,如果您在iPhone上启用了“实时照片”功能拍摄照片,您将获得一个.HEIC文件,其中包含多张照片和一个录音文件-构成实时照片的所有内容。 在较旧版本的Apple iOS上,或者如果选择“最兼容”选项,则这些实时照片将存储为.JPG静止图像文件和三秒钟的.MOV视频文件。

    HEIF比JPEG更好 (HEIF is Just Better Than JPEG)

    The High Efficiency Image Format is an improvement over JPEG in every way. By using more modern compression schemes, it can store the same amount of data in a JPEG image file in half the size.

    高效图像格式在各个方面都是对JPEG的改进。 通过使用更现代的压缩方案,它可以将一半大小的相同数量的数据存储在JPEG图像文件中。

    As phones get upgraded to use cameras with more megapixels, photos are increasing in detail. By storing photos in HEIF instead of JPEG, the file size is cut in half, so you can store twice as many photos on your phone. The resulting photos should be faster to upload to online services and use less storage space if those services support HEIF files, too. On an iPhone, this means your photos should upload to the iCloud Photo Library twice as fast.

    随着电话升级为使用百万像素以上的摄像头,照片的细节在不断增加。 通过将照片存储在HEIF中而不是JPEG中,文件大小减小了一半,因此您可以在手机上存储两倍的照片。 如果这些服务也支持HEIF文件,则生成的照片应更快地上传到在线服务,并使用较少的存储空间。 在iPhone上,这意味着您的照片应以两倍快的速度上传到iCloud照片库。

    The JPEG standard dates back to 1992, and the latest version of the JPEG standard was finalized in 1994. JPEG served us well for a long time, but it’s no surprise that a modern standard has surpassed it.

    JPEG标准的历史可以追溯到1992年,而JPEG标准的最新版本是在1994年完成的。JPEG为我们服务了很长时间,但现代标准超越了它也就不足为奇了。

    缺点:兼容性 (The One Downside: Compatibility)

    The only downside to using HEIF or HEIC photos is compatibility. If a piece of software can view images, it can definitely read JPEG images. But, if you take photos and end up with HEIF or HEIC files, those won’t work everywhere.

    使用HEIF或HEIC照片的唯一缺点是兼容性。 如果某个软件可以查看图像,则它绝对可以读取JPEG图像。 但是,如果您拍照并得到HEIF或HEIC文件,则这些文件将无法在任何地方使用。

    That’s why the iPhone and iPad automatically convert your photos to JPEG images when you attach them to an email or share them with a service that doesn’t support HEIF files. It also automatically converts them to JPEG when you import these photos onto a Windows PC. Apple’s iOS is designed to automatically make things as compatible as possible.

    因此,当您将照片和照片附加到电子邮件或与不支持HEIF文件的服务共享时,iPhone和iPad会自动将照片转换为JPEG图像。 当您将这些照片导入Windows PC时,它还会自动将它们转换为JPEG。 Apple的iOS旨在自动使事物尽可能兼容。

    While Macs can read .HEIF and .HEIC files starting with macOS High Sierra, Windows 10 doesn’t offer built-in support for these files. You’ll need a third-party image viewer or conversion software to view the original .HEIF or .HEIC files on a Windows PC. Hopefully, Microsoft will add support for this format in the future. It’s becoming more widespread, since Google is adding support to Android, too.

    尽管Mac可以从macOS High Sierra开始读取.HEIF和.HEIC文件,但Windows 10并未为这些文件提供内置支持。 您需要第三方图像查看器或转换软件才能在Windows PC上查看原始的.HEIF或.HEIC文件。 希望微软将来会增加对此格式的支持。 由于Google也增加了对Android的支持,因此它变得越来越普遍。

    If you don’t want to deal with any potential compatibility problems, you can always disable use of the HEIF format on your iPhone and force the camera to take photos as old-fashioned JPEGs. Android P will likely offer a similar option, too.

    如果您不想处理任何潜在的兼容性问题,可以随时在iPhone上禁用HEIF格式的使用,并强制相机将照片作为老式JPEG进行拍摄。 Android P也可能会提供类似的选项。

    Web上的HEIF呢? (What About HEIF on the Web?)

    The HEIF format has arrived on Apple’s iPhones and will appear on phones running Google’s Android, but it hasn’t taken over the web. While Apple offers HEIF format support on macOS, not even the Safari browser on Macs can view HEIF images.

    HEIF格式已经出现在Apple的iPhone上,并将出现在运行Google的Android的手机上,但尚未取代网络。 尽管Apple在macOS上提供了HEIF格式支持,但即使Mac上的Safari浏览器也无法查看HEIF图像。

    Other browsers like Google Chrome, Mozilla Firefox, and Microsoft Edge also don’t support HEIF, so don’t expect to see HEIF on the web any time soon. Google, for example, is pushing its own WebP format.

    其他浏览器(例如Google Chrome,Mozilla Firefox和Microsoft Edge)也不支持HEIF,因此不要指望很快会在网上看到HEIF。 例如,谷歌正在推广自己的WebP格式

    Image Credit: Bon Appetit/Shutterstock.com

    图片来源: Bon Appetit /Shutterstock.com

    翻译自: https://www.howtogeek.com/345314/what-is-the-heif-or-heic-image-format/

    heif heic 的区别

    展开全文
  • 苹果在2017年通过iOS 11引入了HEIF,并且对其他平台的支持也在不断增长。 问题陈述 目前,HEIF不支持本机浏览器( )。 目前,我们正在使用渲染HEIF,但遇到性能问题。 我们希望将此库打包为wasm模块,以利用本机...
  • HEIF 和 HEVC 研究

    千次阅读 2018-08-20 10:49:28
    在升级 iOS 11 之后,iPhone 7 及更新的设备内的照片存储将不再用 JPEG 了,而采用了一种新的图片格式 HEIF(发音同 heef),在 iOS 中对应的文件后缀为 .heic ,其编码用的是 HEVC(这个发不了音,哈哈哈)格式,又...

    在升级 iOS 11 之后,iPhone 7 及更新的设备内的照片存储将不再用 JPEG 了,而采用了一种新的图片格式 HEIF(发音同 heef),在 iOS 中对应的文件后缀为 .heic ,其编码用的是 HEVC(这个发不了音,哈哈哈)格式,又称 H.265 (这个就很熟悉了 H.264 的下一代),同时视频也用 HEVC 作为编码器,对应的文件后缀还是 .mov 。

    这里要注意他们俩的关系, HEIF 是图片格式,而 HEVC 是编码格式(类似 H.264,VP8),HEIF 是图片容器(类似于视频的 mkv,mp4 后缀),而用 HEVC 进行编码的 HEIF 图片就是后缀为 .heic 的图片,也是苹果主要使用的格式。

    这两个都是很新的标准,分别在 2015 和 2013 年才被 ISO 批准。这篇文章主要介绍一下 HEIF 格式和与其他图片格式相比的优劣。
    发展史如下:

    这里写图片描述

    图1

    什么是 HEIF?

    HEIF 全称 High Efficiency Image Format (HEIF)。是由 Moving Picture Experts Group 制定的,存储图片和图片序列的格式。
    相关的介绍位置这边可以看到 https://nokiatech.github.io/heif/ ,对的,你没有看错,是 Nokia 的技术人员们制定的。相比 JPEG ,PNG 等传统的图片格式来说, HEIF 可算是相当年轻了,但是这种格式相比 JPEG 等有很多的优点。

    • 压缩比高,在相同的图片质量情况下,平比 JPEG 高两倍。
    • 能增加如图片深度信息,透明通道等辅助图片。(苹果正是通过这个就能实现动态的调整图片的景深)。

    这里写图片描述

    图2

    • 支持存放多张图片,类似相册和集合。(实现多重曝光的效果)
    • 支持多张图片实现 GIF 和 livePhoto 的动画效果。
    • 无类似 JPEG 的最大像素限制。
    • 支持透明像素。
    • 分块加载机制。
    • 支持缩略图。

    在这个 Nokia 网站上可以看到相关的例子。

    文件组成

    在视频文件中,容器和编码是独立开的,比如 mp4,mkv 等格式是容器,而 H.264,VP8 等是编码。但是图像文件中,像 JPEG 就是混合在一起的(所以它不好用啊,哈哈哈哈),HEIF 就把容器和编码分开了,有用来存放单个或者多个图像的容器。

    所以基于不同的编码器,会有不同的文件后缀。

    编码器单文件后缀连续图片后缀
    HEVC.HEIC.HEICS
    H.264.AVCI.AVCS
    Any codec.HEIF.HEIFS

    Apple 设备中默认使用的都是 HEVC 的编码的 HEIF 格式。

    在 Apple 所编码的 HEIF 的文件组成大致如下图,其 mdat – Media Data 中存放的是 exif 信息,缩略图(320*240),和 HEVC 编码后的图片:

    这里写图片描述

    图3

    HEIF 底层是默认 tiled,就是片状的有 512×512 个,由一个个小的图块,组成一张大图,这一特性有如下的优点:

    • 加速解码
    • 缩放加快(不用加载整张图片)
    • 裁剪加快

    HeifTile 和 SystemTile (CATiledLayer 等系统所提供的分块加载)是不一样的,但是两者结合会有很大的提升,所以在加载和处理特大图片时,性能有大幅度的提升。

    兼容性

    每当一个新的技术推进至工业化,兼容性无疑是最重要的考量点。像 HEIF 这样的图片格式,并不像 JPEG / PNG 等已经被广泛应用和适配了,估计在 Apple 推出之前,大部分开发者和我一样应该都是不知道的。目前工业化的体系内,对 HEIF 几乎是不兼容,Windows 上无法打开 HEIF 文件,10.13 前的 macOS 也无法打开。苹果在推行这一技术的时候,在内部也是做了很多兼容工作的。

    对一般用户

    一般情况下,用户是对这个格式无感知的,因为只有在新款支持硬解码的 iOS 手机内部是以 heif & hevc 格式来存储照片和视频的,而在用户通过 Airdrop 或者数据线传送到电脑上的时候,对不兼容的设备会自动转换到 JPEG 的格式。所以也不会影响你使用微信,微博等软件。
    不过在苹果内部的 app 中,基本都已经用上了这一技术,如照片,FaceTime 等应用。意味着以后同等储存空间能存放更多的照片和视频,同时 FaceTime 也能节省更多了流量,相同网络情况下,FaceTime 也会更加清晰。
    通过在 设置 -> 照片 选项中可以设置传到 MAC 或者 PC 上时保持 HEIF 格式。

    这里写图片描述

    图4

    支持的设备

    • HEIF 图片:
      编码:
    • 硬件:A10 及以上芯片 iOS 设备。即只有 iPhone7 及以上是支持 HEIF 的(有双摄像头,才有深度信息)。
    • 软件:iOS11,运行 macOS 系统的 Mac 设备。
      解码:

    • 硬件:A9 及以上芯片 iOS 设备(iPhone6s),配备 6 代及以上 Inter Core 处理(Skylake)。

    • 软件:iOS11 和 macOS 支持软解码,但是 iOS11 锁版本代表最低只支持到 5s 。

    • HECV 视频:
      视频分为 8 位 / 10 位 两种模式。
      基本和图片编解码保持一致,唯一有区别的是 10 位硬解码要求是 7 代 Intel 处理器。

    总结一下,就是升到iOS 11之后,你的设备就能解析新格式的图片和视频,软硬解码的区别就是,硬解码会更快并更省电。

    对开发者

    上层框架 PhotoKit

    对用户的几乎无感知切换的前提,肯定是上层 API 没有变化,调整的是最底层的 API,所以一般开发者使用上层的框架时,如 PhotoKIt 是不受影响的,不同格式的图片都抽象为了同一个对象。而且对图片增加滤镜和视频的调整修改,最后都会渲染为 JPEG 和 H.264。在这一级别的 API 是接触不到图片文件格式转换所带来的变化的。

    下层框架 Image I/O

    Image I/O 中可以直接读写 .heic 文件。
    iOS 11 中 Image I/O 能够直接读取 heif 的文件,包括读取 exif,xmp 等信息。

    let inputURL = URL(fileURLWithPath:Bundle.main.resourcePath! + "/IMG_0513.HEIC")
    let source = CGImageSourceCreateWithURL(inputURL as CFURL, nil)
    let image = CGImageSourceCreateImageAtIndex(source!, 0, nil)
    
    let options = [kCGImageSourceCreateThumbnailFromImageIfAbsent as String: true, kCGImageSourceThumbnailMaxPixelSize as String: 320] as [String: Any]
    let thumb = CGImageSourceCreateThumbnailAtIndex(source!, 0, options as CFDictionary)
    
    guard let cImage = image else {
    print("not support heic")
    return;
    }

    当然也可以选择把 CGImage 写入到 HEIC 格式,虽然这样可以节约更多的存储空间,实际使用的时候还是要注意转换操作。

    let url = URL(fileURLWithPath: "/tmp/output.heic")
    guard let destination = CGImageDestinationCreateWithURL(url as CFURL,AVFileType.heic as CFString, 1, nil) 
    else{
    fatalError("unable to create CGImageDestination")
    }
    CGImageDestinationAddImage(imageDestination, image, nil) 
    CGImageDestinationFinalize(imageDestination)

    Apple 提供的很多 API ,供开发者检测设备是否支持新的格式。提供了两种推荐的工作场景事例。

    1. 社交网络
      在社交软件中,涉及到图片分享之类的内容,是无法确定接受者是否能支持新的格式的, Apple 的策略是建议都进行转换到 JPEG 的操作,比如发送邮件,或者通过 extension 分享的时候,传入其他 app 中的时候,都已经进行了转换了。

    2. p2p 场景
      在该场景中,设备和设备间的直接连接,首先把接受者的支持格式告知发送者,然后发送者根据兼容的情况,选择 HEIF 或者 JPEG。比如 AirDrop 。

    同时诸如 SDWebImage 目前也正在做对 heif 的兼容。

    跨平台

    大部分的播放器已经支持了 HEVC 即 H.265 的编码器,但是针对 HEIF 的图片兼容性还是相对较差的。
    目前有的是 Nokia 提供了一个 C++ 的读写库,通过该库,支持把 HEIF 的图片的解码到 HEVC 的编码数据。

    • Android 兼容性:
      依赖 Nokia 的库,目前只能通过 CPU 软解。

    据说 LG 正在研发支持硬解的手机。(raddit)

    • 网页兼容性:
      Nokia 提供 JS 库。

    • Windows 兼容性:

    目前也没有能直接打开 HEIF 文件的应用

    对比

    常常拿来与 HEVC 来做对比的是 VP9。两者的性能相近,但是 VP9 是开源的,而 HEVC 是需要专利费的( $2 每设备)。
    目前暂时没有通过 VP9 进行编码的图片,所以这里主要对比的是 webp 就是通过 VP8 进行编码的图片。
    webp
    WebP目前支持桌面上的Chrome和Opera浏览器,手机支持仅限于原生的Android浏览器、Android系统上的Chrome浏览器、Opera Mini浏览器。

    • WebP 有损支持
      Google Chrome (desktop) 17+
      Google Chrome for Android version 25+
      Opera 11.10+
      Native web browser, Android 4.0+ (ICS)
    • WebP 有损 / 无损 / 透明支持
      Google Chrome (desktop) 23+
      Google Chrome for Android version 25+
      Opera 12.10+
      Native web browser, Android 4.2+ (JB-MR1)
      Pale Moon 26+
    • WebP 动画支持
      Google Chrome (desktop and Android) 32+
      Opera 19+

    下面是几个关键技术点的对比,可见 HEIF 功能是最强大的。

    .heicWebPJPEG
    最大尺寸无上限16383×16383
    编码HEVCVP8
    是否支持其他编码YESNO
    支持音频/文字YESNO
    支持多图片YESYES
    支持裁剪YESNO
    支持透明YESYES
    支持缩略图YESNO
    分块加载YESNO

    压缩效率

    下面的数据均是官方提出:
    Webp 同等质量下,比 JPEG 图像小 25-34%。
    JPEG 平均需要比 HEVC 多 139% 的比特率,意味着同等质量下,JPEG 的大小是 HEVC 的 2.39 倍!
    把两个的参考标准统一一下:
    Webp 比 JPEG 小 25-34%
    HEVC 比 JPEG 小 58%

    实际测试:webp 以 80 的质量进行压缩,hevc 以 crf 18 (视觉无损)压缩,同时增加一个 320×240 的缩略图。

    进行 HEIF 转码的流程是,将图片通过 ffmpeg 编码到 H.265,再通过 Nokia 的库转成 HEIC 文件(Heif)。

    //生成主图像编码
    ffmpeg -i $1 -crf 18 -preset slower -pix_fmt yuv420p -f hevc bitstream.265 
    //生成缩略图编码
    ffmpeg -i $1 -vf scale=320:240 -crf 28 -preset slower -pix_fmt yuv420p -f hevc bitstream.thumb.265
    //调用 Nokia 的工具
    ./writerapp config.json

    实际测试数据:

    格式原图大小heicwebp
    JPEG 4352×32645.7 MB487KB538 KB
    JPEG 8688×579234.7 MB3.5 MB2.7 MB
    tiff 3840×21601.8 MB238 KB264 KB
    PNG 1243×22081.5 MB175 KB209 KB
    PNG 512×512243 KB13 KB14 KB

    除了一组特大图的表现不一样外,其他几组图片相比, heif 确实比 webp 压缩效率高 10-20%。

    毕竟和 HEVC 对标的技术应该是 VP9,所以 heif 能够领先也是情理之中。

    解码的消耗测试

    主要测试设备是 iPhone 6s Plus 系统 iOS 11,用的解码方法 webp 为 Google 提供的库,hevc 和 jpeg 用的是 CGImageSource 来解码。
    测试用图片还是之前的五组图片,同时对 JPEG 进行了一些压缩,测试了 5 组平均值(去一个最高,去一个最低),估计加载的时候存在缓存,所以第一次读图片数据的时候耗时较大。

    第一组用第一张 7.7 mb 的 jpeg 压缩后大小 1.1mb
    jpeg 7.43 2.77 1.46 1.9 2.14 2.00 【占用率 6 %】
    hevc 41.0 3.45 3.35 2.62 2.92 2.66 【占用率 6 %】
    webp 216.6 216.8 217.5 261.9 195.2 【占用率 21 %】

    格式平均时间占用率
    jpeg2.20ms5 %
    hevc3.01ms6 %
    webp220.1ms20%

    第二组用第三张 1.8 mb 的 tff,转换成 jpeg 之后大小为 815 KB。

    hevc 58.4 3.1 2.8 1.13 2.65 2.82 2.02 【 2% 】
    jpeg 65.3 2.67 2.76 2.73 2.69 2.87 1.34 【 2% 】
    webp 130.2 110.9 117.5 114.8 120.9 112.8 124.84 【 12% 】

    格式平均时间占用率
    jpeg2.73ms2 %
    hevc2.68ms2 %
    webp115.58ms12%

    第三组用的最后一张 243KB PNG ,转换成 JPEG 之后大小为 43 KB。
    hevc 47 3.24 2.7 3.21 2.63 1.74 【 1 %】
    jpeg 16 6.70 6.97 4.46 7.2 6.76 7.08 【 1% 】
    webp 20.7 20.2 12.5 22.0 19.3 19.4 【 2 % 】

    格式平均时间占用率
    jpeg6.90ms1 %
    hevc2.95ms1 %
    webp20.1ms2 %

    测试结果由于硬解码的支持,jpeg 和 hevc 解码速度和 CPU 占用率都比 webp 快和小很多,jpeg 和 hevc 不相伯仲,可见苹果内部对齐优化也相当到位,才把它放到 iOS 11 中。

    总结

    相比 JPEG 来比很强大,毕竟是下一代技术,但是兼容性可想而知,在“最大效率”和“最大兼容”两者中间还是要根据使用场景进行权衡,目前的优势也只有最新的 iPhone 能体验到,但不久的将来可能所有的手机都去支持照片深度,动态照片,更广的色域等。HEVC 也许和推行 H.264 一样,逐渐成为了工业界的标准,但又可能和推行 acc 的处境一样,只是成为了苹果的标准而已,终究还是要看市场的反应了.

    展开全文
  • 目录 背景 什么是HEIF? 小结 什么是AVIF? 有什么好处? 为什么要使用新的图像格式? 采用AV1和AVIF 注意事项 关于基准测试的注意事项 今天如何以及何时启用AVIF? 背景 上一篇文档主要讲了一下ImageX支持的图片...

    目录

    背景

    什么是HEIF?

    小结

    什么是AVIF?

    有什么好处?

    为什么要使用新的图像格式?

    采用AV1和AVIF

    注意事项

    关于基准测试的注意事项

    今天如何以及何时启用AVIF?


    背景

    上一篇文档主要讲了一下ImageX支持的图片压缩格式,看起来压缩率比较高,但是有些同学会问这些格式和编码方式有什么不同,所以,本篇文档主要讲一下图片格式和图片编码相关的科普类说明;

    什么是HEIF?

    来自wiki上的说明

    高效率图像文件格式(英语:High Efficiency Image File Format, HEIF;也称高效图像文件格式[1])是一个用于单张图像或图像序列的文件格式。它由动态影像专家小组(MPEG)开发,并在MPEG-H Part 12(ISO/IEC 23008-12)中定义。

    HEIF规范也定义了高效率视频编码(HEVC)编码的内嵌图像和HEVC编码的图像序列的存储方式,其中以受约束的方式应用帧间预测。

    • 存储单个或多个图像及其缩略图
    • 存储连拍照片
    • 支持同时捕获视频和静止图像,即将静止图像和定时图像序列存储在同一文件中
    • 高效地表示动画和动态静图
    • 存储焦点堆叠和曝光堆叠到同一个容器文件
    • 存储从其他图像文件派生的图像,无论是以非破坏性图像编辑操作为目的派生的图像,还是作为预先计算派生的图像
    • 支持存储其他媒体,例如音频和定时的文本,将定时的图像序列存储在同一个容器文件中,并且同步播放。

    HEIF本身具备很多很多可玩的特性,在这里我们对一些格式做一些比较:

     

     HEIF (.heic)JPEG/ExifPNGGIF (89a)WebP
    格式和可扩展性
    基本容器文件格式ISOBMFFTIFF--RIFF
    有损压缩是 是 (JPEG)是 (VP8)
    无损压缩是 是 (TIFF Rev 6.0)是 (PNG)是 (GIF)是 (VP8L)
    可扩展至其他编码格式
    元数据格式(在内部、顶部)Exif, XMP, MPEG-7Exif--Exif, XMP
    可扩展至其他元数据格式
    其他媒体类型(音频、文本等)Audio
    多图像特性
    同一个文件中多个图像
    图像序列/动画
    图像编码
    派生图像
    多次90度旋转
    裁剪
    平铺/堆叠
    可扩展至其他编辑操作
    辅助图片信息
    透明度(alpha通道)
    深度映射
    缩略图

     

    从这里,我们也知道,苹果公司优先在手机里支持了heic格式,相比于其他图片格式有太多的优点了;在iphone 使用优点如下:

    • 压缩率极大提升,照片类型图片同样质量是jpeg的一半尺寸。相当于对于拍照来说iPhone X,7和8的有效存储空间是128G-512G。
    • 对于一些色块,线条类型图片压缩比例更是惊人,而且完全没有jpeg那种边缘噪点。有时候只需要五分之一的空间。
    • 支持高色深,10-bit,12-bit内容。这是HDR普及所必须的,jpeg完全不行必死无疑。另外iphone已经可以拍这些高色深格式的HDR图片,安卓机则不行,当然这里在android P+以上版本陆续可以支持heif格式的图像了。
    • 支持透明度
    • 支持多通道,比如iPhone的人像模式拍出来是两张图,其中原图附带了景深通道,第三方应用可以直接调用做出自定义的虚化效果。而安卓机只能是通过文件命名,速度慢,文件乱,没法导出,不支持第三方应用。
    • 支持多文件,同一个文件里可以有多张图片,比如上述原图和渲染好的虚化图,还可以有视频动图。安卓再次扑街,完全不行,只能尝试放在一个文件夹里。
    • 支持多帧复合压缩,比如上述虚化图和原图,都不需要存储两张图,对比压缩以后只存储一部分虚化背景就可以。又因为背景被虚化信息量很小,拍人像模式的照片占用空间更是远远低于安卓机

    小结

     

    小结:

    从昨天的的文章对比的:https://blog.csdn.net/weixin_44643524/article/details/112550247 能看到 ImageX 这个云服务支持的heic 压缩率也是极高的;不过目前,从动图这块看,ImageX 家的动图支持的还是非常不错的,我有去尝试过其他家自研的格式,比如腾讯的TPG、快手KPG还有京东的一个图片格式来看,自研的图片格式压缩效果确实好于开源格式,不过缺点也明显一般这些格式都需要配合SDK或者解码库使用;

    HEIF 这个格式的优势,随着新版的操作系统的普及Android P 以上版本和 iOS 11+ 以上操作系统的普及,系统默认支持heif 格式的图像指日可待了;

     

    下面主要聊聊AVIF

     

    什么是AVIF?

    AVIF是HEIF ISO标准和Mozilla,Xiph,Google,Cisco等许多公司的免版税AV1编解码器的组合。

    当前,JPEG是Web上最流行的图像格式。它的使用年限非常出色,而且由于其出色的兼容性,它很可能会在未来几年保持流行。以前有很多尝试替换JPEG的尝试,例如JPEG 2000,JPEG XR和WebP。但是,这些格式仅提供了适度的压缩改进,并不总是在图像质量上胜过JPEG。AVIF的压缩率和图像质量要比所有其他方法都要好,而且差距很大。

    有什么好处?

    平均网站带宽的一半以上用于图像。改进的图像压缩可以节省带宽并提高Web的整体性能。AVIF中的压缩效果非常好,图像可以缩小到JPEG和WebP的一半大小

    为什么要使用新的图像格式?

    AVIF要做的一件大事就是修复了WebP的最大缺陷。WebP已有10多年的历史了,AVIF是WebP格式的主要升级。这两种格式在技术上相关:它们都基于VPx系列的视频编解码器。WebP使用旧的VP8版本,而AVIF基于AV1。

    WebP限于8位颜色深度,并且在其最佳压缩操作模式下,它只能存储图像分辨率的一半的颜色(称为色度二次采样)。这将导致饱和色彩的边缘在WebP中被弄脏或像素化。AVIF支持全分辨率的10位和12位色彩以及高动态范围(HDR)。

    JPEG格式
    WebP
    WebP(锐化YUV选项)
    AVIF

    AV1还使用一种新的压缩技术:亮度色度。大多数图像格式将亮度与色相分开存储。AVIF使用亮度通道来猜测颜色通道的外观。它们通常是相关的,因此很好的猜测可以得出较小的文件大小和更清晰的边缘。

    采用AV1和AVIF

    VP8和WebP遭受了勉强的行业采用。Safari仅在Chrome推出10年后才添加WebP支持。

    Chrome 85已经支持AVIF。其他基于Chromium的浏览器和Firefox仍在进行中。苹果尚未宣布Safari是否支持AVIF。但是,这次苹果公司是AVIF的创建者开放媒体联盟的公司之一。与以前的免版税编解码器相比,AV1编解码器的采用速度更快。来自Nvidia,AMD和Intel的最新GPU已经具有对AV1的硬件解码支持。

    AVIF使用与iOS相机中使用的HEIC格式相同的HEIF容器。AVIF和HEIC提供类似的压缩性能。

    注意事项

    AVIF是功能丰富的格式。它的大多数功能都适用于智能手机相机,例如“实时”照片,深度图,连拍,HDR和无损编辑。浏览器将仅支持其中一部分功能。在“图像调整大小”的实现中,我们仅支持静态范围的图像。

    AVIF中的两个最大问题是编码速度和渐进渲染的缺乏。

     

    测试图集

     

    开放测试图集地址:https://github.com/AOMediaCodec/av1-avif/tree/master/testFiles

     

     

    关于基准测试的注意事项

    公平而准确地判断哪种有损编解码器更好是令人惊讶的困难。有损编解码器经过专门设计,主要用于压缩肉眼看不到的细微图像细节,因此“看起来几乎相同,但是文件更小!” 是所有有损编解码器的共同特征,但不够具体,不足以得出有关其性能的结论。

    有损编解码器无法仅通过比较文件大小来进行比较。有损编解码器可以轻松制作任何大小的文件。它们的效果在于文件大小与可达到的视觉质量之间的比例。

    比较编解码器的最佳方法是,使每个编解码器将图像压缩到完全相同的文件大小,然后比较它们所达到的实际视觉质量。如果文件大小不同,则任何判断都可能是不公平的,因为生成较大文件的编解码器可能这样做只是因为要求其保留更多详细信息,而不是因为无法更好地压缩。

    AVIF图像在完全下载之前不会在屏幕上显示任何内容。相反,渐进式JPEG仍在加载时,可以非常快速地显示较低质量的图像近似值。渐进式JPEG交付良好时,它们使网站加载速度似乎更快。渐进JPEG看起来可以加载为文件大小的一半。AVIF可以完全以JPEG大小的一半加载,因此它以纯粹的压缩优势克服了渐进式渲染的不足。在这种情况下,只剩下WebP,既没有渐进式渲染也没有强大的压缩。

    与其他编解码器相比,解码AVIF图像进行显示需要更多的CPU能力,但实际上它应该足够快。即使是低端的Android设备也可以在没有硬件加速帮助的情况下以全高清格式播放AV1视频,而AVIF图像只是AV1视频的一帧。但是,AVIF图像的编码要慢得多。创建单个图像可能甚至需要几秒钟。AVIF支持平铺,这可以加速多核CPU上的编码。我们有很多CPU内核,因此我们可以利用它来加快编码速度。“图像调整大小”未使用AVIF中可能的最大压缩级别来进一步提高压缩速度。调整大小的图像将被缓存,因此仅在缓存未命中时,编码速度才明显。

    我们还将在波兰语中添加AVIF支持。波兰语会在后台异步转换图像,从而完全隐藏了编码延迟,并且与“图像调整大小”相比,它能够更好地压缩AVIF图像。

    今天如何以及何时启用AVIF?

    即使目前尚不支持AVIF,我们仍然可以将HTML格式的HTML格式与<picture>元素一起使用。该<picture>元素允许逐步支持,因为我们可以按照要加载的顺序列出图像源,浏览器将加载它支持的第一个图像源。如果浏览器根本不支持<picture>,它将退回到使用default <img>

    <picture>
    	<source srcset="img/photo.avif" type="image/avif">
    	<source srcset="img/photo.webp" type="image/webp">
    	<img src="img/photo.jpg" alt="Description of Photo">
    </picture>

     

    当然了,我昨天的测试文档发现使用 ImageX(感觉做的比较专业) 可以快速的将 图片转换为AVIF格式,比如这个例子:http://imagex.75live.com/tos-cn-i-n9b2vwdhz3/aaeb00635949973062083b65b5b8c364.jpeg~tplv-n9b2vwdhz3-toB.avif 如果恰巧也有计划将网站迁移到avif使用可以去试用一下他们家的服务;

     

    下一篇打算重点讲一下,如何通过一个JS的SDK 来解决在web 浏览器加载HEIF和avif的图像格式;敬请期待; 

     

     

    展开全文
  • HEIF的简介
  • 前边两篇博客简单分析了HEIF格式和HEIF的参考代码如何下载、编译。本文记录从HEVC裸流生成HEIF图片的方法。
  • 如何让Android图片库支持HEIF图片格式

    千次阅读 2020-08-12 17:23:18
    微软也于最新放出的 Windows 10 Build 17123 预览版开始,新增了对 HEIF 图像格式的系统原生支持,所以系统极客将在本文中为大家简介 HEIF 这一新兴的高效率图像格式。 HEIF优于JPEG图像格式 高效率图像格式在各...
  • HEIF全称High Efficiency Image File Format(高效图像文件格式),是一种高效的图片封装格式,文件名通常为.heif或者.heic后缀。HEIF能够在保持...
  • // Verify that the file is HEIF format. FileInformation fileInfo; if (reader->getFileInformation(fileInfo) != ErrorCode::OK) { cout ! Wrong heif format." ; return; } if (!(fileInfo.features & ...
  • Android P新的图片格式 HEIF 调研

    千次阅读 2019-03-15 16:39:58
    备忘,以后用到好查,转:... HEIF HEIF是什么? HEIF format &amp; features? HEIF优缺点,商业价值? Nokia HEIF? Android P对HEIF的支持情况? IOS对HEIF的支持情况? 兼容性问题? HEIF是...
  • HEIF转JPG

    千次阅读 2019-01-29 21:27:59
    在浏览器上,目前缺省不能显示heif格式的图片,需要转换成jpg 在网上查资料,libheif可以实现这个功能。 然后,查到如果转换成jpg,需要libde265和jpeg库。 如果需要将jpg转换成heif,需要x265库 将这些库在windows上...
  • HEIF & HEVC 你知道多少?

    万次阅读 2017-10-13 00:00:00
    在升级 iOS 11 之后,iPhone 7 及更新的设备内的照片存储将不再用 JPEG 了,而采用了一种新的图片格式 HEIF(发音同 heef),在 iOS 中对应的文件后缀为 .heic ,其编码用的是 HEVC(这个发不了音,哈哈哈)格式,又...
  • heif hevcIn iOS 11, the photos and videos you take will no longer be encoded in the compatible formats you’re used to. Instead of JPG for images and MPEG-4 for video, they’ll use High Efficiency ...
  • HEIF转换器.rar

    2021-04-20 15:48:58
    转换手机中的HEIF照片,就可以看照片啦!好用。
  • HEIF/HEIC转jpg、JPEG、PNG开源实现

    千次阅读 2020-05-11 14:39:23
    tifig:A fast HEIF image converter aimed at thumbnailing heif:High Efficiency Image File Format
  • CentOS7平台HEIF转JPEG

    千次阅读 2018-02-09 15:39:44
    1.HEIF&amp;HEVC 在升级 iOS 11 之后,iPhone 7 及更新的设备内的照片存储将不再用 JPEG 了,而采用了一种新的图片格式 HEIF,在 iOS 中对应的文件后缀为 .heic ,其编码用的是 HEVC格式,又称 H.265 (这就是...
  • iPhone 7 之后系统相机支持HEIF格式的图片,在扫描二维码时,该格式的图片需要转换成JPG格式才能进行扫描成功。 二、思路 用户在打开系统相册选择完一张照片后,要判断该照片是否是HEIF格式,如果是,进行格式...
  • 可执行文件example_share链接到两个函数库heif_shared heif_writer_shared; 这几个函数库具体怎么生成的看其它目录下的CMakeLists.txt,(暂时没深入研究); 所以自建立文件来用库函数直接改一下这个文件就ok了; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 799
精华内容 319
关键字:

heif