fd577425de477fdc196e2eacf8c6e9b2dfdd854f
[yaffs-website] / vendor / lsolesen / pel / test / GH21Test.php
1 <?php
2 /**
3  * PEL: PHP Exif Library.
4  * A library with support for reading and
5  * writing all Exif headers in JPEG and TIFF images using PHP.
6  *
7  * Copyright (C) 2004, 2006, 2007 Martin Geisler.
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program in the file COPYING; if not, write to the
21  * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
22  * Boston, MA 02110-1301 USA
23  */
24
25 use lsolesen\pel\PelJpeg;
26
27 class GH21Test extends \PHPUnit_Framework_TestCase
28 {
29     protected $file;
30
31     function setUp()
32     {
33         $this->file = dirname(__FILE__) . '/images/gh-21-tmp.jpg';
34         $file = dirname(__FILE__) . '/images/gh-21.jpg';
35         copy($file, $this->file);
36     }
37
38     function tearDown()
39     {
40         unlink($this->file);
41     }
42
43     function testThisDoesNotWorkAsExpected()
44     {
45         $scale = 0.75;
46         $input_jpeg = new PelJpeg($this->file);
47
48         $original = ImageCreateFromString($input_jpeg->getBytes());
49         $original_w = ImagesX($original);
50         $original_h = ImagesY($original);
51
52         $scaled_w = $original_w * $scale;
53         $scaled_h = $original_h * $scale;
54
55         $scaled = ImageCreateTrueColor($scaled_w, $scaled_h);
56         ImageCopyResampled(
57             $scaled,
58             $original,
59             0,
60             0, /* dst (x,y) */
61             0,
62             0, /* src (x,y) */
63             $scaled_w,
64             $scaled_h,
65             $original_w,
66             $original_h
67         );
68
69         $output_jpeg = new PelJpeg($scaled);
70
71         $exif = $input_jpeg->getExif();
72
73         if ($exif !== null) {
74             $output_jpeg->setExif($exif);
75         }
76
77         file_put_contents($this->file, $output_jpeg->getBytes());
78
79         $jpeg = new PelJpeg($this->file);
80         $exifin = $jpeg->getExif();
81         $this->assertEquals($exif, $exifin);
82     }
83 }