精华内容
下载资源
问答
  • MP4是一套用于音频、视频信息压缩编码标准,由国际标准化组织(ISO)和国际电工委员会(IEC)下属动态图像专家组”(Moving Picture Experts Group,即MPEG)制定,第一版在1998年10月通过,第二版在1999年12...

    MP4文件格式介绍

    MP4是一套用于音频、视频信息的压缩编码标准,由国际标准化组织(ISO)和国际电工委员会(IEC)下属的“动态图像专家组”(Moving Picture Experts Group,即MPEG)制定,第一版在1998年10月通过,第二版在1999年12月通过。MPEG-4格式的主要用途在于网上流、光盘、语音发送(视频电话),以及电视广播。

    MPEG-4包含了MPEG-1及MPEG-2的绝大部份功能及其他格式的长处,并加入及扩充对虚拟现实模型语言(VRML,VirtualReality Modeli,Language)的支持,面向对象的合成档案(包括音效,视讯及VRML对象),以及数字版权管理(DRM)及其他互动功能。而MPEG-4比MPEG-2更先进的其中一个特点,就是不再使用宏区块做影像分析,而是以影像上个体为变化记录,因此尽管影像变化速度很快、码率不足时,也不会出现方块画面。

    mp4(文件格式)_百度百科

    MP4的各个部分

    MPEG-4由一系列的子标准组成,被称为部 (part)(有时也译为卷),包括以下的部分:

    1. 第一部分(ISO/IEC 14496-1):系统:描述视讯和音频数据流的控制、同步以及混合方式(即混流
      Multiplexing,简写为MUX)。
    2. 第二部分(ISO/IEC
      14496-2):视讯:定义了一个对各种视觉讯息(包括自然视讯、静止纹理、计算机合成图形等等)的编译码器。(例如XviD编码就属于MPEG-4
      Part2)
    3. 第三部分(ISO/IEC
      14496-3):音讯:定义了一个对各种音频讯号进行编码的编译码器的集合。包括高阶音频编码(AdvancedAudio
      Coding,缩写为AAC)的若干变形和其他一些音频/语音编码工具。
    4. 第四部分(ISO/IEC 14496-4):一致性:定义了对本标准其他的部分进行一致性测试的程序。
    5. 第五部分(ISO/IEC 14496-5):参考软件:提供了用于演示功能和说明本标准其他部分功能的软件。
    6. 第六部分(ISO/IEC 14496-6):多媒体传输整合框架(DMIF for Delivery Multimedia
      IntegrationFramework)
    7. 第七部分(ISO/IEC 14496-7):优化的参考软件:提供了对实作进行优化的例子(这里的实作指的是第五部分)。
    8. 第八部分(ISO/IEC 14496-8):在IP网络上传输:定义了在IP网络上传输MPEG-4内容的方式。
    9. 第九部分(ISO/IEC 14496-9):参考硬件:提供了用于演示怎样在硬件上实作本标准其他部分功能的硬件设计方案。
    10. 第十部分(ISO/IEC 14496-10):进阶视讯编码或称高阶视讯编码(Advanced Video Coding,缩写为AVC):定义了一个视讯编译码器(codec)。AVC和XviD都属于MPEG-4编码,但由于AVC属于MPEG-4Part10,在技术特性上比属于MPEG-4Part2的XviD要先进。另外,它和ITU-T H.264标准是一致的,故又称为H.264。
    11. 第十二部分(ISO/IEC 14496-12):基于ISO的媒体文件格式:定义了一个储存媒体内容的文件格式。
    12. 第十三部分(ISO/IEC 14496-13):知识产权管理和保护(IPMP for Intellectual Property
      Management andProtection)拓展。
    13. 第十四部分(ISO/IEC 14496-14):MPEG-4文件格式:定义了基于第十二部分的用于储存MPEG-4内容的视讯文件格式。
    14. 第十五部分(ISO/IEC 14496-15):AVC文件格式:定义了基于第十二部分的用于储存第十部分的视讯内容的文件格式。
    15. 第十六部分(ISO/IEC 14496-16):动画框架扩充功能(AFX : Animation Framework
      eXtension)。
    16. 第十七部分(ISO/IEC 14496-17):同步文字字幕格式。
    17. 第十八部分(ISO/IEC 14496-18):字型压缩和串流传输(针对开放字型格式 Open Font Format)。
    18. 第十九部分(ISO/IEC 14496-19):合成材质流(Synthesized Texture Stream)。
    19. 第二十部分(ISO/IEC 14496-20):简单场景表示(LASeR for Lightweight Scene
      Representation。
    20. 第二十一部分(ISO/IEC 14496-21):用于描绘(Rendering)的MPEG-J拓展。
    21. 第二十二部分(ISO/IEC 14496-22):开放字型格式(Open Font Format)。
    22. 第二十三部分(ISO/IEC 14496-23):符号化音乐表示(Symbolic Music Representation)。
    23. 第二十四部分(ISO/IEC 14496-24):音频与系统互动作用(Audio and systems interaction)。
    24. 第二十五部分(ISO/IEC 14496-25):3D图形压缩模型(3D GraphicsCompression Model)。
    25. 第二十六部分(ISO/IEC 14496-26):音讯一致性检查:定义了测试音频数据与ISO/IEC
      14496-3是否一致的方法(Audioconformance)。
    26. 第二十七部分(ISO/IEC
      14496-27):3D图形一致性检查:定义了测试3D图形数ISO/IEC14496-11:2005, ISO/IEC14496-16:2006, ISO/IEC 14496-21:2006, ISO/IEC14496-25:2009是否一致的方法(3D Graphicsconformance)。Profiles是在每个部分内定义的,所以对某个部分的一个实作通常不是对该部分的完整实作。
      MPEG-1、MPEG-2、MPEG-7和MPEG-21是由MPEG制定的其他MPEG标准。

    相关文章

    常用视频文件的介绍(一):M3U8–常用点播和直播格式文件

    展开全文
  • 现在网页上普遍使用图片格式为...可以通过降低品质在压缩文件大小,并且右下角动画是不能用,我们大多用这个格式来存储尺寸较大文件或颜色非常丰富的图像2、GIF格式它保留了背景透明和动画。通过颜色表可以...

    18d996efb7c9e0ad1988c07e44930159.png

    现在网页上普遍使用的图片格式为GIF、JPEG、和PNG格式。我来打开一张素材,

    2a379de70f33ef554242da842540aae8.gif

    c08fa79f3b6278cac53cb5ef41b328ac.png

    这是一张动态图片,我通过时间轴先让它动起来,

    fedfbd0830a122d59ad6529cba97c56b.gif

    将它分别存储为这几种格式向大家进行介绍。【文件存储为..】选择jpeg

    1、JPEG存储透明区域会变成白色。可以通过降低品质在压缩文件大小,并且右下角的动画是不能用的,

    e58b3c7d373994033fac62bd9e864e27.png

    我们大多用这个格式来存储尺寸较大文件或颜色非常丰富的图像

    88a544a1d368ccdeeff0d059d6c99d1c.png

    2、GIF格式它保留了背景的透明和动画。通过颜色表可以看出,在图像效果上不如JPEG,但是可以通过减少颜色来降低文档大小。大家可能会觉得JOEG的是灰的,那是因为太多~~

    ae9cfef289469a19f55dd63e2e0ed223.png

    3、PNG格式汲取了GIF和JPEG两者的优点,是目前保存最不失真的格式,它支持透明但不支持动画。

    1e090f909a664f044dc9418fd43d96e4.png

    PNG素材更多用来存储透明背景

    a5146218f8a974bab0e2684e399180b1.png

    最后久是我们的PSD文件,既然是用PS处理图像,那么用的最多的肯定是PS软件的原配,PSD文件格式啦,它是PS软件的源文件,它可以存储你对图像的任何编辑,包括涂层参考线,通道等等,也就是你工作到中途有事,存储为PSD文件.改天回来打开可以继续编辑。

    4b637d142e996df87bb822d153b63e84.png

    ea5f04ce80734db15e5479bb4aaf57ec.png

    但是电脑自带的画图工具,传真查看器都是打不开PSD文件的,如果想发朋友圈或在浏览器上进行传播须要存储为JPEG、GIF、PNG几种格式。

    【设计教程网】查看视频教程,记得回来加关注、点个赞哦!

    展开全文
  • 常用的图片格式有一下几种。 PNG JPEG GIF WebP 是 Google 制造的一个图片格式,针对网络上快速传输就行了优化 TIFF/TIF 在数字影响、遥感、医学等领域中得到了广泛的应用。TIFF文件的后缀是.tif或者.tiff HEIC iOS...

    常用的图片格式有一下几种。

    • PNG
    • JPEG
    • GIF
    • WebP 是 Google 制造的一个图片格式,针对网络上快速传输就行了优化
    • TIFF/TIF 在数字影响、遥感、医学等领域中得到了广泛的应用。TIFF文件的后缀是.tif或者.tiff
    • HEIC iOS11 后,苹果拍照图片的默认格式
    • HEIF 用于存储动态图像

    那么,怎么去判断。通常图片格式都会存储图片的 Hex Signature 中(十六进制签名) 相信地址可以参考:www.garykessler.net/library/fil…

    JPGE 二进制数据前两个字节数据为
    Hex Signature
    FF D8
    复制代码
    PNG
    Hex Signature
    89 50 4E 47 0D 0A 1A 0A
    复制代码
    GIF
    Hex Signature
    47 49 46 38 37 61 or
    47 49 46 38 39 61
    复制代码
    TIFF
    Hex Signature
    49 20 49 or
    49 49 2A 00 or
    4D 4D 00 2B or
    4D 4D 00 2A
    复制代码
    HEIC
    Hex Signature
    00
    复制代码

    HEIF
    Hex Signature
    00
    复制代码

    网上很多都是复制过来的,都知道代码是怎样的。但是不知道为啥具体需要判断如 heic, heix, mif1 等这些信息。后来在这里找到。file-extension.net/seeker/

    WEBP
    Hex Signature
    52
    复制代码

    判断 Webp 为什么是截取 0-12 的长度?转换成 ASCII 之后判断的依据?

    在 Google 官方介绍中找到了此图。说明的是:头文件的大小是 12Bytes

    WEBP的 header 中写明了 ASCIIRIFF 或者 WEBP Google Developer: developers.google.com/speed/webp/…

    明白了原理之后,就是代码咯!

    enum ImageFormat {
        case Unknow
        case JPEG
        case PNG
        case GIF
        case TIFF
        case WebP
        case HEIC
        case HEIF
    }
    extension Data {
        func getImageFormat() -> ImageFormat  {
            var buffer = [UInt8](repeating: 0, count: 1)
            self.copyBytes(to: &buffer, count: 1)
            
            switch buffer {
            case [0xFF]: return .JPEG
            case [0x89]: return .PNG
            case [0x47]: return .GIF
            case [0x49],[0x4D]: return .TIFF
            case [0x52] where self.count >= 12:
                if let str = String(data: self[0...11], encoding: .ascii), str.hasPrefix("RIFF"), str.hasSuffix("WEBP") {
                    return .WebP
                }
            case [0x00] where self.count >= 12:
                if let str = String(data: self[8...11], encoding: .ascii) {
                    let HEICBitMaps = Set(["heic", "heis", "heix", "hevc", "hevx"])
                    if HEICBitMaps.contains(str) {
                        return .HEIC
                    }
                    let HEIFBitMaps = Set(["mif1", "msf1"])
                    if HEIFBitMaps.contains(str) {
                        return .HEIF
                    }
                }
            default: break;
            }
            return .Unknow
        }
    }
    复制代码
    展开全文
  • PDF文件使您可以完全控制页面呈现方式以及页面上文本,图形和图像的呈现方式。 可悲是,用于构建PDF文件的API并不是PHP工具包标准部分。 现在是时候提供一些帮助了。 常用缩略语 API:应用程序编程接口...

    gitbook 构建pdf

    有时您需要精确控制如何呈现页面以进行打印。 在这种情况下,HTML并不是最佳选择。 PDF文件使您可以完全控制页面的呈现方式以及页面上文本,图形和图像的呈现方式。 可悲的是,用于构建PDF文件的API并不是PHP工具包的标准部分。 现在是时候提供一些帮助了。

    当您在网络上搜索对PHP的PDF支持时,您可能会首先发现的是商业PDFLib库及其开放源代码版本PDFLib-Lite。 这些都是不错的库,但是商业版本相当昂贵。 库的简易版仅作为源分发,如果尝试在托管环境中安装该限制,则可能会遇到问题。

    另一个选择是免费PDF库(FPDF),它是本地PHP。 它不需要任何编译,并且是完全免费的,因此您不会像使用未经许可的PDFLib版本那样看到水印。 我在本文中使用了这个免费的PDF库。

    为了演示动态地构建PDF文件,您将使用女子滚轮德比锦标赛的分数。 这些分数是从Web上提取的,并转换为XML。 清单1显示了XML数据文件的示例。

    清单1. XML数据
    <events>  
      <event name='Beast of the East 2011'>
        <game score1='88' team1='Toronto Gore-Gore Rollergirls' 
              team2='Montreal La Racaille' score2='11'/>
        <game score1='58' team1='Toronto Death Track Dolls' 
              team2='Montreal Les Contrabanditas' score2='49'/>
         ...
      </event>
      <event name='Dustbowl Invitational 2011'>
         ...
      </event>
      <event name='The Great Yorkshire Showdown 2011'>
         ...
      </event>
    </events>

    XML的根元素是events标记。 数据被分组为事件,其中每个事件包含多个游戏。 events标签内有一系列event标签,其中有多个game标签。 这些game标签包括两支球队中每支球队的名称以及他们在比赛中的得分。

    清单2显示了用于读取XMLPHP​​代码。

    清单2. getresults.php
    <?php
    function getResults() {
      $xml = new DOMDocument(); 
      $xml->load('events.xml'); 
      $events = array();
      foreach($xml->getElementsByTagName('event') as $event) { 
        $games = array();
        foreach($event->getElementsByTagName('game') as $game) {
          $games []= array( 'team1' => $game->getAttribute('team1'),
            'score1' => $game->getAttribute('score1'),
            'team2' => $game->getAttribute('team2'),
            'score2' => $game->getAttribute('score2') );
        }
        $events []= array( 'name' => $event->getAttribute('name'),
          'games' => $games );
      }
      return $events;
    }
    ?>

    该脚本实现了一个getResults函数,该函数将XML文件读入DOMDocument。 然后,使用DOM调用遍历所有eventgame标签以构建事件数组。 数组的每个元素内都有一个哈希表,该哈希表包含事件的名称和所玩游戏的数组。 该结构基本上是XML结构的内存版本。

    为了测试该脚本是否有效,您将构建一个HTML导出页面,该页面使用getResults函数读取文件,然后将数据输出为一系列HTML表。 清单3显示了此测试PHP代码。

    清单3.结果HTML页面
    <html><head><title>Event Results</title></head>
    <body>
    <?php
    include_once('getresults.php');
    $results = getResults();
    foreach( $results as $event ) {
    ?>
    <h1><?php echo( $event['name'] ) ?></h1>
    <table>
    <?php
    foreach( $event['games'] as $game ) {
      $s1 = (int)$game['score1'];
      $s2 = (int)$game['score2'];
    ?>
    <tr>
      <td style="font-weight:<?php echo( ( $s1 > $s2 ) ? 'bold' : 'normal') ?>">
        <?php echo( $game['team1'] ) ?></td>
      <td><?php echo( $s1 ) ?></td>
      <td style="font-weight:<?php echo( ( $s2 > $s1 ) ? 'bold' : 'normal') ?>">
        <?php echo( $game['team2'] ) ?></td>
      <td><?php echo( $s2 ) ?></td>
    </tr>
    <?php
    }
    ?>
    </table>
    <?php
    }
    ?>
    </body></html>

    使用此代码,getresults.php和上传到Web服务器的XML数据文件,您可以查看HTML结果。 类似于图1

    图1. derby生成HTML
    derby的屏幕截图显示为HTML

    该结果甚至为获胜的团队使用粗体字体,以轻松查看哪个团队赢得了哪个赛事。

    建立PDF

    有了数据,现在该专注于构建PDF文件了。 第一步是下载FPDF库并将其安装在与现有应用程序文件集相同的目录中。 实际上,您可以将其安装在PHP库路径中的任何位置。 跟踪放置字体目录的位置,因为您将需要设置'FPDF_FONTPATH'清单4所示

    清单4. PDF Hello World
    <?php
    define('FPDF_FONTPATH','/Library/WebServer/Documents/derby/font/');
    
    require( 'fpdf.php' );
    
    $pdf = new FPDF();
    $pdf->SetFont('Arial','',72);
    $pdf->AddPage();
    $pdf->Cell(40,10,"Hello World!",15);
    $pdf->Output();
    ?>

    该脚本实际上是一个“ Hello World”,但是是PDF而不是HTML。 脚本要做的第一件事是使用define语句设置FPDF字体目录的位置。 然后使用require语句引入FPDF库。 脚本从那里开始创建FPDF对象,设置字体,添加页面,使用Cell方法在页面上放置一些文本,然后输出PDF。

    图2显示了一切正常运行时的结果。

    图2. PDF中的Hello World
    PDF格式的Hello World的屏幕截图

    如果看不到PDF,则可能要在命令行上运行脚本,以查看是否缺少fpdf.php文件或是否存在其他问题。

    现在,PDF渲染已经可以正常工作了,是时候将其与Roller derby结果文件合并,看看可以动态生成什么了。 清单5显示了此合并的第一个版本。

    清单5.显示结果的PDF的第一个版本
    <?php
    define('FPDF_FONTPATH','/Library/WebServer/Documents/derby/font/');
    
    require( 'fpdf.php' );
    require( 'getresults.php' );
    
    class PDF extends FPDF
    {
    function EventTable($event)
    {
        $this->Cell(40,10,$event['name'],15);
        $this->Ln();
    }
    }
    
    $pdf = new PDF();
    $pdf->SetFont('Arial','',48);
    foreach( getResults() as $event ) {
      $pdf->AddPage();
      $pdf->EventTable($event);  
    }
    $pdf->Output();
    ?>

    而不是从外部驱动FPDF类,我们将FPDF类扩展为我们自己的PDF子类。 在该子类中,我们创建了一个称为EventTable的新方法,该方法为给定事件构建结果表。 在这种情况下,我们从小处入手,仅给出事件的名称。 该名称包装在脚本底部的foreach循环中,该循环为每个事件添加一个页面,然后调用EventTable方法。

    您可以在图3中看到此脚本的输出。

    图3.动态PDF的第一个版本
    第一版动态PDF的屏幕截图,显示了“东方之兽2011”标题

    向下滚动页面显示每个事件都在其自己的页面上。 从这里开始的下一步是开始将结果添加到页面。

    建立结果表

    构建PDF文件时,没有任何一个表结构像HTML一样简单。 建立表格的方法是建立一堆具有各种宽度,字体,填充颜色,线条颜色等的单元格。

    清单6显示了为表设置标题栏的附加代码。

    清单6.添加结果表头
    <?php
    define('FPDF_FONTPATH','/Library/WebServer/Documents/derby/font/');
    
    require( 'fpdf.php' );
    require( 'getresults.php' );
    
    class PDF extends FPDF
    {
    function EventTable($event)
    {
        $this->SetFont('','B','24');
        $this->Cell(40,10,$event['name'],15);
        $this->Ln();
    
        $this->SetXY( 10, 45 );
    
        $this->SetFont('','B','10');
        $this->SetFillColor(128,128,128);
        $this->SetTextColor(255);
        $this->SetDrawColor(92,92,92);
        $this->SetLineWidth(.3);
    
        $this->Cell(70,7,"Team 1",1,0,'C',true);
        $this->Cell(20,7,"Score 1",1,0,'C',true);
        $this->Cell(70,7,"Team 2",1,0,'C',true);
        $this->Cell(20,7,"Score 2",1,0,'C',true);
        $this->Ln();
    }
    }
    
    $pdf = new PDF();
    $pdf->SetFont('Arial','',10);
    foreach( getResults() as $event ) {
      $pdf->AddPage();
      $pdf->EventTable($event);  
    }
    $pdf->Output();
    ?>

    此处的附加代码设置字体,颜色和线宽。 然后,它用四个标题列渲染一些单元格。 然后,它调用Ln方法,该方法等效于回车以开始新行。

    在浏览器中查看此脚本时,会看到类似图4的内容

    图4.带有表头行的页面
    页面的屏幕截图,带有表的标题行

    图4中 ,标头以灰色背景上的白色文本呈现。 此格式有助于将它们与标头下呈现的数据区分开。 要渲染游戏结果,请添加清单7中的代码。

    清单7.添加完整的结果表
    <?php
    define('FPDF_FONTPATH','/Library/WebServer/Documents/derby/font/');
    
    require( 'fpdf.php' );
    require( 'getresults.php' );
    
    class PDF extends FPDF
    {
    function EventTable($event)
    {
        $this->SetFont('','B','24');
        $this->Cell(40,10,$event['name'],15);
        $this->Ln();
    
        $this->SetFont('','B','10');
        $this->SetFillColor(128,128,128);
        $this->SetTextColor(255);
        $this->SetDrawColor(92,92,92);
        $this->SetLineWidth(.3);
    
        $this->Cell(70,7,"Team 1",1,0,'C',true);
        $this->Cell(20,7,"Score 1",1,0,'C',true);
        $this->Cell(70,7,"Team 2",1,0,'C',true);
        $this->Cell(20,7,"Score 2",1,0,'C',true);
        $this->Ln();
    
        $this->SetFillColor(224,235,255);
        $this->SetTextColor(0);
        $this->SetFont('');
    
        $fill = false;
    
        foreach($event['games'] as $game)
        {
            $this->SetFont('Times',((int)$game['score1']>(int)$game['score2'])?'BI':'');
            $this->Cell(70,6,$game['team1'],'LR',0,'L',$fill);
            $this->Cell(20,6,$game['score1'],'LR',0,'R',$fill);
            $this->SetFont('Times',((int)$game['score1']<(int)$game['score2'])?'BI':'');
            $this->Cell(70,6,$game['team2'],'LR',0,'L',$fill);
            $this->Cell(20,6,$game['score2'],'LR',0,'R',$fill);
            $this->Ln();
            $fill =! $fill;
        }
        $this->Cell(180,0,'','T');
    }
    }
    
    $pdf = new PDF();
    $pdf->SetFont('Arial','',10);
    foreach( getResults() as $event ) {
      $pdf->AddPage();
      $pdf->EventTable($event);  
    }
    $pdf->Output();
    ?>

    除了标题行之外, EventTable方法中还有一个foreach循环,可以循环浏览每个游戏。 图5显示了此代码。

    图5. PDF和结果表
    PDF的屏幕截图以及带有团队和分数的结果表

    $ fill变量切换以替换表中每一行的颜色。 获胜团队的名称和分数均以粗体,斜体显示,这使它们真正脱颖而出。 还要注意,字体从标题的Arial更改为游戏内容的Times。

    为了完成示例代码,您需要添加一些图形。

    用图形装饰

    将图像添加到PDF非常容易。 要实现这一目标,请先从网络上获取一张图片。 我抓住了一支轮式德比战队的徽标,并将其存储为PNG。 从那里开始,我使用清单8中的新代码。

    清单8.添加徽标图像
    <?php
    define('FPDF_FONTPATH','/Library/WebServer/Documents/derby/font/');
    
    require( 'fpdf.php' );
    require( 'getresults.php' );
    
    class PDF extends FPDF
    {
    function EventTable($event)
    {
        $this->Image('logo.png',5,5,33);
    
        $this->SetXY( 40, 15 );
    
        $this->SetFont('','B','24');
        $this->Cell(40,10,$event['name'],15);
        $this->Ln();
    
        $this->SetXY( 10, 45 );
    
        $this->SetFont('','B','10');
        $this->SetFillColor(128,128,128);
        $this->SetTextColor(255);
        $this->SetDrawColor(92,92,92);
        $this->SetLineWidth(.3);
    
        $this->Cell(70,7,"Team 1",1,0,'C',true);
        $this->Cell(20,7,"Score 1",1,0,'C',true);
        $this->Cell(70,7,"Team 2",1,0,'C',true);
        $this->Cell(20,7,"Score 2",1,0,'C',true);
        $this->Ln();
    
        $this->SetFillColor(224,235,255);
        $this->SetTextColor(0);
        $this->SetFont('');
    
        $fill = false;
    
        foreach($event['games'] as $game)
        {
          $this->SetFont('Times',((int)$game['score1']>(int)$game['score2'])?'BI':'');
          $this->Cell(70,6,$game['team1'],'LR',0,'L',$fill);
          $this->Cell(20,6,$game['score1'],'LR',0,'R',$fill);
          $this->SetFont('Times',((int)$game['score1']<(int)$game['score2'])?'BI':'');
          $this->Cell(70,6,$game['team2'],'LR',0,'L',$fill);
          $this->Cell(20,6,$game['score2'],'LR',0,'R',$fill);
          $this->Ln();
          $fill =! $fill;
        }
        $this->Cell(180,0,'','T');
    }
    }
    
    $pdf = new PDF();
    $pdf->SetFont('Arial','',10);
    foreach( getResults() as $event ) {
      $pdf->AddPage();
      $pdf->EventTable($event);  
    }
    $pdf->Output();
    ?>

    清单8中的关键方法是Image方法,该方法采用图像的文件名,位置和宽度。 所有其他参数都是可选的,因此您只能指定所需的信息。

    对SetXY的一些新调用将文本和表格移动到适当的位置,以防止它们覆盖图像。

    图6显示了此脚本的输出。

    图6.带有徽标图像的完整PDF
    带有徽标图像的完整PDF的屏幕截图

    利用该库提供的所有其他方法来渲染图形,添加文字,添加超链接以及管理页面机制(例如边距和方向),您就可以完全控制PDF文件。

    结论

    使用正确的工具,用PHP构建PDF文件非常容易。 对于需要对内容的布局进行严格控制的任何事情,此方法都是打印发票或票证或填写表格的理想选择。


    翻译自: https://www.ibm.com/developerworks/opensource/library/x-buildpdfphp/index.html

    gitbook 构建pdf

    展开全文
  • 图片四种格式.jpg、.gif、.png、.bmp

    千次阅读 2019-03-16 10:42:27
    是最常用的图像文件格式,由一个软件开发联合会组织制定,是一种有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。尤其是使用过高的压缩比例,将使...
  • ROS常用的功能包

    2021-01-15 11:57:41
    3D可视化工具(rviz): 机器人模型可视化、图像数据可视化、地图数据可视化等。 机器人模型(URDF),URDF功能包定义了一个XML格式来描述一个机器人模型,并提供了一个c++解析器。 3D动态模拟器(Gazebo):能够...
  • 因为PDF文件格式可以将文字、字型、格式、颜色及独立于 设备和分辨率图形图像等封装在一个文件中。该格式文件还可以包含超文本链接、声音和动态影像等电子信 息,支持特长文件,集成度和安全可靠性都较高。所以...
  • 第3章 图像文件格式 3.1 概述 3.1.1 图像文件 3.1.2 图像文件结构 3.1.3 图像文件的常用参数 3.1.4 图像文件类型 3.1.5 图像显示与存储过程 3.1.6 不同显示格式间像素数据转换 3.2 BMP文件格式 ...
  • PDF阅读器是一款阅读PDF...它可把文档文本、格式、字体、颜色、分辨率、链接及图形图像、声音、等动态影像体现出来。功能强大它得到越来越多用户喜爱,下面博主给大家分享五种PDF阅读器。 NO1:Adobe Reader...
  • 按住鼠标右键比划一下就可以执行常用的操作, 在文件夹页中, 比如后退、前进、向上以及关闭等; 在图片打开页中, 比如可以导航到下一个、上一个、第一个、最后一个图片以及其他图像处理命令, 大大提高了鼠标利用率. 您...
  • 常用开源库介绍

    2017-06-14 13:42:00
    geos 高级二维矢量图像开发库 skia 一个Google Chrome和Android使用2D图形库 GDAL 是一个基于C++栅格格式空间数据格式解释器 OGR 是C++简单要素类库提供对各种矢量数据文件格式的读取(某些时候也支持...
  • 阴道镜XP常用.rar

    2019-09-22 17:15:31
    16、自定义报告格式:软件报告格式是可以随意修改,可以随意调整任何一幅图像,任意文字在报告中位置。 17、打印:超声影像工作站软件支持所有打印机,任何类型打印纸,并且根据打印纸大小调整适应打印版面...
  • 一款简单实用免费截图工具软件,不仅可以截取静态屏幕图像,还可以截取视频图像。... 既可以将截图存到剪贴板,也可以另存为bmp、png、jpg或gif格式的图像文件。另外,本软件还集成锁屏、便签、闹钟等实用功能。
  • Aspose.Words for .NET...同时支持所有流行的Word处理文件格式,并允许将Word文档导出或转换为固定布局文件格式和最常用的图像、多媒体格式。 Aspose.Words for .Net更新至新版本v19.10,支持动态插入指向LINQ ...
  • 图片,是我们生活中最常见的信息载体,作为一...JPEG(Joint Photographic Experts Group)即联合图像专家组,是用于连续色调静态图像压缩的一种标准,文件后缀名为 .jpg 或 .jpeg,是最常用的图像文件格式。 JPEG 图片
  • 除文本文档外,也支持doc、rtf、pdf、swf、html、mp3及微软支持各种影像格式电影等常用格式文档直接浏览(无需另开窗口)。  5. 内置文档压缩功能。内置文件加密功能,确保资料万无一失。  6. 支持类级口令保护...
  • 360全景单张图片HDR处理方法教程

    千次阅读 2019-09-10 13:54:43
    HDR是360全景摄影中常用的图片处理技术。如果使用单张图片进行色调映射处理,推荐使用RAW格式文件。由于其有着比jpeg格式文件更大的动态范围,经过色调映射... 使用RAW格式图像文件进行色调映射,有两种基本方法可...
  • 基于STM32F407图片显示实验(有代码)

    千次阅读 2020-09-20 13:19:13
    一、实验目的 在开发产品时候,很多时候,我们都会用到图片解码,本次实验介绍如何通过 STM32F4 来解码 BMP/JPG/JPEG/GIF 等图片,... BMP(全称 Bitmap)是 Window 操作系统中标准图像文件格式,文件后缀名为“.b
  • 主要内容有C#开发环境使用、C#语言基础应用、字符串处理技术、数组和集合使用、面向对象编程...文件、C#与Word互操作、高效应用Excel、基本图形绘制、图像处理技术、常用图表应用、动画处理技术、音频与视频控制...
  • 主要内容有C#开发环境使用、C#语言基础应用、字符串处理技术、数组和集合使用、面向对象编程...文件、C#与Word互操作、高效应用Excel、基本图形绘制、图像处理技术、常用图表应用、动画处理技术、音频与视频控制...
  • ASP.NET网页代码模型及生命周期

    热门讨论 2009-07-28 14:22:11
    在编译的过程中都被编译成由项目生成的动态链接库(.DLL),同时,.aspx页面同样也会编译。但是与.cs页面编译过程不同的是,当浏览者第一次浏览到.aspx页面时,ASP.NET自动生成该页的.NET类文件,并将其编译成另一个...
  • 6.以前只支持bmp格式,现在增加jpg格式的图像; 7.其它API函数优化; 本软件是绿色软件,完全免费,无任何插件和广告,欢迎大家使用! 如果您觉得该软件好,请积极反馈你意见供下次时改进! (千万不要用于剽窃别人论文...
  • 9.2.1 与设备有关位图的格式 9.2.2 使用与设备有关位图 9.3 建立与设备有关位图 9.3.1 相关API函数 9.3.2 程序举例 9.4 图标与光标 9.4.1 图标 9.4.2 光标 9.5 光栅运算 9.5.1 什么是光栅运算 ...
  •  《Visual C++开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第I卷,以...
  •  《Visual C++开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第I卷,以...
  •  《Visual C++开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第I卷,以...
  • 还可以让您轻松将任意多的图像文件生成一个电子相册,并提供多达150种动画显示效果,方便您欣赏自己图片,并轻易实现与家人、朋友分享!支持多达11种(BMP,JPG,PNG,GIF,PSD,TIF等)基本图像格式相互...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 227
精华内容 90
关键字:

常用的动态图像文件格式