图像格式存储:位图和矢量图像。位图把值存在阵列中,矢量格式存储的是绘图图像的指令。还有混合格式PostScript能够排布字母甚至位图,使其成为了一个非常灵活的方式。衍生格式pdf。

xcdoe6已经支持了PDF格式,但是迄今扔不完善,只是在编译时将其创建成了位图图像。最常见的矢量图为SVG,在iOS中也有一个渲染SVG文件的库,SVGKit。

位图:表达位图最简单的方法是讲二进制作为每个像素的值,一个像素只有开、管两种状态,我们可以在一个字节中存储8个像素,效率非常高。但是只能存储两种颜色。gif有一个颜色表只能存256种颜色,png有个与之色板,每个像素的颜色分量都是直接指定的。gif和png的压缩是无损的。jpeg压缩是有损的,但是在照片中不存在这个问题。恩,这里有一个色彩深度的问题jepg的深度是8bit,raw的色彩深度是14bit。

综上,就放大缩小而言,矢量格式svg最好,对比鲜明切颜色数量有限的线条图适合gif或png,而照片应该使用jpeg。

处理图像数据:iOS有几个类是用来处理位图数据的,UIImage(UIKit),CGImage(CoreGraphics)和CIImage(CoreImage)这几个类源自不同的框架,对图像的储存优化方式也各有侧重。通常情况下,不同类型之间是可以轻松转换的。

从相机捕获图像:可以创建AVCaptureStillImageOutput静态对象,可以调整曝光控制或聚焦设定,光补偿,闪光灯,甚至ISO设置。

用程序操作对象:简单的可以使用UIGraphicsBeginImageContext方法。UIGraphicsGetImageFromCurrentImageContext();

元数据:用于存储图像信息的标准格式是Exif,可交换图像文件格式。iOS中可以使用CGImageSourceCopyPropertiesAtIndex方法访问Exif信息。有些信息可能会丢失,有些可能被删除。NSA就在收割XKeyscore程序中的Exif数据。

总结:图像的来源很多,每个来源都会需要处理特定且不同的边界问题。不过iOS中最大的问题其实是内存,随着相机和屏幕分辨率越来越好,图像的尺寸也开始变大。iPhone5s有一个800万像素的摄像头;如果每个像素被存储在4个字节(分别用于三个颜色信道,加上一个不透明性),就会产生32兆的数据、如果需要添加几个工作副本或图像预览,我们会很快在处理多张图片或幻灯片时遇到麻烦。再加上文件系统的写入也不是非常快,所以很有必要进行一些优化,以确保iOS应用程序运行流畅。

objccn-图片格式的更多相关文章

  1. PPM图片格式及其C读写代码

    PPM图像格式介绍 PPM图像格式是由Jef Poskanzer 大叔,在我出生那一年,也就是1991年所创造的,碰巧的是PPM也是天蝎座. PPM(Portable Pixmap Format)还有 ...

  2. 【VC++技术杂谈007】使用GDI+进行图片格式转换

    本文主要介绍如何使用GDI+对图片进行格式转换,可以转换的图片格式为bmp.jpg.png. 1.加载GDI+库 GDI+是GDI图形库的一个增强版本,提供了一系列Visual C++ API.为了使 ...

  3. JS验证图片格式和大小并预览

    用于上传图片的js验证: <%@ page language="java" contentType="text/html; charset=UTF-8"p ...

  4. PNG和Gif及JPEG图片格式比较

    Gif格式特点 透明性Gif是一种布尔透明类型,既它可以是全透明,也可以是全不透明,但是它并没有半透明(alpha 透明). 动画Gif这种格式支持动画. 无损耗性Gif是一种无损耗的图像格式,这也意 ...

  5. JavaScript校验图片格式及大小

    <!DOCTYPE html> <html> <head> <title>JavaScript校验图片格式及大小</title> <s ...

  6. 前端工程师技能之photoshop巧用系列第四篇——图片格式

    × 目录 [1]图片格式 [2]保存设置 前面的话 对于前端来说,图片格式是需要重要掌握的知识.本文是photoshop巧用系列第四篇——图片格式 图片格式 目前在前端的开发中常用的图片格式有jpg. ...

  7. 利用PhotoShop将Font-Awesome转为图片格式

    介绍如何将Font-Awesome等字体图标转换为图片格式,使用PHOTPSHOP很简单. 网上找了很多,都比较麻烦.别问为什么要这么做,因为你还没遇到需要的时候. 下载Font-Awesome字体库 ...

  8. 【faster-rcnn】训练自己的数据——修改图片格式、类别

    修改图片格式 matlab代码 其实内部一些代码是用了rbg的fast-rcnn代码的. \datasets\VOCdevkit2007\VOCcode\VOCinit.m里面,查找'jpg',改成' ...

  9. BMP图片格式

    BMP图片 BMP采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大.BMP文件的图像深度可选lbit.4bit.8bit及24bit和32bit.BMP文 ...

  10. C#验证是否是真的图片格式

    做图片上传功能时,我们要限制用户上传的图片格式和大小. 但是,还有一种情况就是验证用户伪造的符合要求的图片,这种情况就必须要验证文件的真正格式. C#的办法时可以通过将文件读成二进制流,取前两个字节判 ...

随机推荐

  1. [[iso教程]] 《4个月ios实体教程》全网最新、最全ios视频教程

    全网最新.最全ios视频教程 内容简介 <ios实体教程>主要介绍如何使用iOS提供的强大工具集创建iOS应用.全视频对iOS操作系统做了全面的介绍,首先讲解如何构建应用程序的用户界面,涵 ...

  2. ie与火狐中常见的一些兼容问题

    1. document.form.item 问题 (1)现有问题: 现有代码中存在许多 document.formName.item("itemName") 这样的语句,不能在Fi ...

  3. EasyUI datagrildview导出excel报表

    $.extend($.fn.datagrid.methods, { toExcel: function(jq, filename){ return jq.each(function(){ var ur ...

  4. Manacher's Algorithm 马拉车算法

    这个马拉车算法Manacher‘s Algorithm是用来查找一个字符串的最长回文子串的线性方法,由一个叫Manacher的人在1975年发明的,这个方法的最大贡献是在于将时间复杂度提升到了线性,这 ...

  5. 你可能不知道的 NaN 以及 underscore 1.8.3 _.isNaN 的一个 BUG

    这篇文章并不在我的 underscore 源码解读计划中,直到 @pod4g 同学回复了我的 issue(详见 https://github.com/hanzichi/underscore-analy ...

  6. 覆盖问题:最大覆盖问题(Maximum Covering Location Problem,MCLP)和集覆盖问题(Location Set Covering Problem,LSCP)

    集覆盖问题研究满足覆盖所有需求点顾客的前提下,服务站总的建站个数或建 设费用最小的问题.集覆盖问题最早是由 Roth和 Toregas等提出的,用于解决消防中心和救护车等的应急服务设施的选址问题,他们 ...

  7. iOS地图 -- 地理编码和反地理编码

    地理编码和反地理编码 用到的类和方法 CLGeocoder --> 地理编码管理器 - (void)geocodeAddressString:(NSString *)addressString ...

  8. C# 6.0 新特性

    1.C# 6.0 示例 1: 自动属性支持初始化, 字符串嵌入的新方式, 通过 Using Static 引用静态类, nameof 表达式CSharp6/Demo1.xaml.cs /* * C# ...

  9. Scales小谈gulp

     gulp是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务. 外网:http://gulpjs.com/ 中文官网:http://www.gulpjs.com.cn/ 易于使用 ...

  10. java 集合 Connection 栈 队列 及一些常用

    集合家族图 ---|Collection: 单列集合 ---|List: 有存储顺序 , 可重复 ---|ArrayList: 数组实现 , 查找快 , 增删慢 ---|LinkedList: 链表实 ...