PHP把JPEG图片转换成Progressive JPEG的方法
JPEG文件格式有两种保存方式。他们是Baseline JPEG和Progressive JPEG.
两种格式有相同尺寸以及图像数据,他们的扩展名也是相同的,唯一的区别是二者显示的方式不同。
Baseline JPEG
这种类型的JPEG文件存储方式是按从上到下的扫描方式,把每一行顺序的保存在JPEG文件中。打开这个文件显示它的内容时,数据将按照存储时的顺序从上到下一行一行的被显示出来,直到所有的数据都被读完,就完成了整张图片的显示。如果文件较大或者网络下载速度较慢,那么就会看到图片被一行行加载的效果,这种格式的JPEG没有什么优点,因此,一般都推荐使用Progressive JPEG
Progressive JPEG
和Baseline一遍扫描不同,Progressive JPEG文件包含多次扫描,这些扫描顺寻的存储在JPEG文件中。打开文件过程中,会先显示整个图片的模糊轮廓,随着扫描次数的增加,图片变得越来越清晰。这种格式的主要优点是在网络较慢的情况下,可以看到图片的轮廓知道正在加载的图片大概是什么。在一些网站打开较大图片时,你就会注意到这种技术。
如果你的网速和蜗牛一样的话,你应该可以看到效果的,其实你在qzone、微博等大型网站你会经常看到这样的效果的。
PHP代码也可以将其进行转换成Progressive 的jpg。
<?php
$im = imagecreatefromjpeg('file.jpg');
// 设置隔行扫描 设定了隔行扫描比特标记而图像使用 JPEG 格式,则图像被创建为渐进式 JPEG。 php手册
imageinterlace($im, 1);
imagejpeg($im, './outfile.jpg', 80);
imagedestroy($im);
?>
我怎么看图片到底是Progressive 还是Baseline 格式呢?
我目前知道就是使用ImageMagick软件带的identity命令进行查看图像资源
identify -verbose outfile.jpg
如果你看到有一个属性为Interlace:JPEG则是Progressive 图片。
相关推荐
-
PHP 实现的将图片转换为TXT
PHP 实现的将图片转换为TXT <?php /* 2015年10月19日10:24:59 */ // 打开一幅图像 $file_name='d:\ascii_dora.png'; $chars = "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. "; function getimgchars($color_tran,$chars){ $length =
-
php将图片文件转换成二进制输出的方法
本文实例讲述了php将图片文件转换成二进制输出的方法.分享给大家供大家参考.具体实现方法如下: header( "Content-type: image/jpeg"); $PSize = filesize('1.jpg'); $picturedata = fread(fopen('1.jpg', "r"), $PSize); echo $picturedata; 就这么简单4行代码,就将图片以二进制流的形式输出到客户端了,和打开一张图片没有任何区别. 这里需要注意的
-
PHP实现接收二进制流转换成图片的方法
本文实例讲述了PHP实现接收二进制流转换成图片的方法.分享给大家供大家参考,具体如下: 这里实现php 接收二进制流转换成图片,所使用的图片类imageUpload.php如下: <?php /** * 图片类 * @version 1.0 * * PHP默认只识别application/x-www.form-urlencoded标准的数据类型. * 因此,对型如text/xml 或者 soap 或者 application/octet-stream 之类的内容无法解析,如果用$_POST数组来
-
PHP中使用imagick实现把PDF转成图片
PHP Manual里,对imagick的描述,真的是简洁,每个成员函数,点击打开就看到如下文本: 复制代码 代码如下: Warning This function is currently not documented; only its argument list is available. 刚才解决了PHP加载问题后,对图片的处理相当方便,网上随便找了一段: 复制代码 代码如下: <?php Header("Content-type: image/jpeg"); /*
-
PHP图片转换通 v1.0可以将图片转换为php代码的绿色软件
软件的主要功能是将实际图片转换成PHP代码,将图片转换成代码后直接拷贝代码到PHP网页的代码内,当浏览者浏览网页时同样可以看到真实的图片.这样做的好处是可以大大加快浏览者浏览网页的速度,从而避免网页从服务器上调用图片的漫长的等待. 该软件为绿色软件,只有一个文件.不用时直接删除即可. 下载此文件 开放网站http://www.8888i.net
-
利用PHP将图片转换成base64编码的实现方法
先来说一下为什么我们要对图片base64编码 base64是当前网络上最为常见的传输8Bit字节代码的编码方式其中之一.base64主要不是加密,它主要的用途是把某些二进制数转成普通字符用于网络传输.由于这些二进制字符在传输协议中属于控制字符,不能直接传送,所以需要转换一下.虽然图片可能直接传输,但是我们也可以将它变成字符串直接放在源码里,而不需要浏览器在读取到源码后再从服务器上下载. 如何使用PHP对图片进行base64解码输出 <?php $img = 'test.jpg'; $base64
-
使用PHP+JavaScript将HTML页面转换为图片的实例分享
1,准备要素 1)替换字体的js文件 js代码: function com_stewartspeak_replacement() { /* Dynamic Heading Generator By Stewart Rosenberger http://www.stewartspeak.com/headings/ This script searches through a web page for specific or general elements and replaces them wi
-
php旋转图片90度的方法
复制代码 代码如下: /** * 修改一个图片 让其翻转指定度数 * * @param string $filename 文件名(包括文件路径) * @param float $degrees 旋转度数 * @return boolean */ function flip($filename,$src,$degrees = 90) { //读取图片 $data = @getimagesize($filename); if($data==false)return fa
-
php实现图片转换成ASCII码的方法
本文实例讲述了php实现图片转换成ASCII码的方法.分享给大家供大家参考.具体如下: php图片转换成ASCII码,转换后可以直接通过字符串显示图片 <html> <head> <title>Ascii</title> <style> body{ line-height:0; font-size:1px; } </style> </head> <body> <?php $image = 'image.j
-
php源码之将图片转化为data/base64数据流实例详解
php源码之将图片转化为data/base64数据流 这里我们分享一个将图片转换为base64编码格式的方法: <?php $img = 'test.jpg'; $base64_img = base64EncodeImage($img); echo '<img src="' . $base64_img . '" />'; /* 作者:http://www.manongjc.com */ function base64EncodeImage ($image_file)
-
php图片的二进制转换实现方法
本文实例讲述了php图片的二进制转换实现方法.分享给大家供大家参考.具体实现方法如下: 这里我们是在上传文件时把上传的文件转换成二进制然后保存到数据的字段中去,下次读读出我们也用同样的方法显示即可. html代码如下: 复制代码 代码如下: <form action="insertPic.php" method="post" enctype="multipart/form-data" name="mainForm" id
-
php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
数据库脚本: -- -------------------------------------------------------- -- -- 表的结构 `highot_attachment` -- 复制代码 代码如下: CREATE TABLE IF NOT EXISTS `highot_attachment` ( `id` int(11) NOT NULL auto_increment, `phone_number_id` int(11) NOT NULL COMMENT 'phone_n
随机推荐
- 在Flex中给datagrid添加右键菜单项的具体实现
- 基于angular2 的 http服务封装的实例代码
- JavaScript中使用Math.floor()方法对数字取整
- windows 服务器安全之磁盘访问权限设置[完整篇]
- IOS 粒子系统 (CAEmitterLayer)实例详解
- C#中缓存的基本用法总结
- 详解Android的两种事件处理机制
- node.js中的fs.readFile方法使用说明
- Linux CLI操作常用快捷键总结
- Web 前端设计模式--Dom重构 提高显示性能
- sql的临时表使用小结
- jQuery获取注册信息并提示实现代码
- Android编程之方向传感器用法示例
- 详解C++中变量的初始化规则
- 实例详解display:none与visible:hidden的区别
- Android手势ImageView三部曲 第二部
- 用CSS实现基本条状图表效果
- JS和JQuery实现雪花飘落效果
- 详解Golang 推荐的命名规范
- vue实现路由切换改变title功能