objccn-图片格式
图像格式存储:位图和矢量图像。位图把值存在阵列中,矢量格式存储的是绘图图像的指令。还有混合格式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-图片格式的更多相关文章
- PPM图片格式及其C读写代码
PPM图像格式介绍 PPM图像格式是由Jef Poskanzer 大叔,在我出生那一年,也就是1991年所创造的,碰巧的是PPM也是天蝎座. PPM(Portable Pixmap Format)还有 ...
- 【VC++技术杂谈007】使用GDI+进行图片格式转换
本文主要介绍如何使用GDI+对图片进行格式转换,可以转换的图片格式为bmp.jpg.png. 1.加载GDI+库 GDI+是GDI图形库的一个增强版本,提供了一系列Visual C++ API.为了使 ...
- JS验证图片格式和大小并预览
用于上传图片的js验证: <%@ page language="java" contentType="text/html; charset=UTF-8"p ...
- PNG和Gif及JPEG图片格式比较
Gif格式特点 透明性Gif是一种布尔透明类型,既它可以是全透明,也可以是全不透明,但是它并没有半透明(alpha 透明). 动画Gif这种格式支持动画. 无损耗性Gif是一种无损耗的图像格式,这也意 ...
- JavaScript校验图片格式及大小
<!DOCTYPE html> <html> <head> <title>JavaScript校验图片格式及大小</title> <s ...
- 前端工程师技能之photoshop巧用系列第四篇——图片格式
× 目录 [1]图片格式 [2]保存设置 前面的话 对于前端来说,图片格式是需要重要掌握的知识.本文是photoshop巧用系列第四篇——图片格式 图片格式 目前在前端的开发中常用的图片格式有jpg. ...
- 利用PhotoShop将Font-Awesome转为图片格式
介绍如何将Font-Awesome等字体图标转换为图片格式,使用PHOTPSHOP很简单. 网上找了很多,都比较麻烦.别问为什么要这么做,因为你还没遇到需要的时候. 下载Font-Awesome字体库 ...
- 【faster-rcnn】训练自己的数据——修改图片格式、类别
修改图片格式 matlab代码 其实内部一些代码是用了rbg的fast-rcnn代码的. \datasets\VOCdevkit2007\VOCcode\VOCinit.m里面,查找'jpg',改成' ...
- BMP图片格式
BMP图片 BMP采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大.BMP文件的图像深度可选lbit.4bit.8bit及24bit和32bit.BMP文 ...
- C#验证是否是真的图片格式
做图片上传功能时,我们要限制用户上传的图片格式和大小. 但是,还有一种情况就是验证用户伪造的符合要求的图片,这种情况就必须要验证文件的真正格式. C#的办法时可以通过将文件读成二进制流,取前两个字节判 ...
随机推荐
- onselectstart与onselect
这两个事件看起来很相似,事实上却非常的不同. onselectstart onselectstart几乎可以用于所有对象,其触发时间为目标对象被开始选中时(即选中动作刚开始,尚未实质性被选中).该事件 ...
- bzoj1800[Ahoi2009]fly 飞行棋 暴力枚举
找了道bzoj的水题,千年难得一遇. 建议初学者做做,然而我个蒟蒻初学时应该A不了..... < http://www.lydsy.com/JudgeOnline/problem.php?id= ...
- LCIS
传送门 http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=726&pid=1003 分析:这道题依然是动态 ...
- Java Web的web.xml文件作用及基本配置(转)
其实web.xml就是asp.net的web.config一个道理. 说明: 一个web中完全可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的. web.xml文件是用来 ...
- ubuntu使用doxygen
1.安装 sudo apt-get install doxygen按tab键 doxygen doxygen-dbg doxygen-doc doxygen-gui d ...
- cookie 和session 的区别详解
这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪 ...
- 如何查看Maven项目中的jar包依赖树情况
对于开发人员,我想大家对于Maven应该不会陌生吧,如何在一个Maven项目中对这个项目中所引用的第三方jar包有个直观的了解呢? 其实实现很简单,只需要借助于Maven的一条命令,如下所示: mvn ...
- PHP 流程管理
添加新流程页面: <div> 请选择流程节点:<br /><br /> <?php session_start(); include("../DBD ...
- Windows中创建桌面快捷方式
Windows中创建桌面快捷方式 -------------- -------------- -------------- --------------
- UICollectionView
#import "ViewController.h" @interfaceViewController ()<UICollectionViewDataSource,UICol ...