OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 'use strict'; | 4 'use strict'; |
5 | 5 |
6 /** | 6 /** |
7 * Test case for ordinal exif encoding and decoding. | 7 * Test case for ordinal exif encoding and decoding. |
8 */ | 8 */ |
9 function testExifEncodeAndDecode() { | 9 function testExifEncodeAndDecode() { |
10 var canvas = getSampleCanvas(); | 10 var canvas = getSampleCanvas(); |
11 var data = canvas.toDataURL('image/jpeg'); | 11 var data = canvas.toDataURL('image/jpeg'); |
12 | 12 |
13 var metadata = { | 13 var metadata = { |
14 media: { | 14 mediaMimeType: 'image/jpeg', |
15 mimeType: 'image/jpeg', | 15 ifd: { |
16 ifd: { | 16 image: { |
17 image: { | 17 // Manufacture |
18 // Manufacture | 18 271: { |
19 271: { | 19 id: 0x10f, |
20 id: 0x10f, | 20 format: 2, |
21 format: 2, | 21 componentCount: 12, |
22 componentCount: 12, | 22 value: 'Manufacture\0' |
23 value: 'Manufacture\0' | |
24 }, | |
25 // Device model | |
26 272: { | |
27 id: 0x110, | |
28 format: 2, | |
29 componentCount: 12, | |
30 value: 'DeviceModel\0' | |
31 }, | |
32 // GPS Pointer | |
33 34853: { | |
34 id: 0x8825, | |
35 format: 4, | |
36 componentCount: 1, | |
37 value: 0 // The value is set by the encoder. | |
38 } | |
39 }, | 23 }, |
40 exif: { | 24 // Device model |
41 // Lens model | 25 272: { |
42 42036: { | 26 id: 0x110, |
43 id: 0xa434, | 27 format: 2, |
44 format: 2, | 28 componentCount: 12, |
45 componentCount: 10, | 29 value: 'DeviceModel\0' |
46 value: 'LensModel\0' | |
47 } | |
48 }, | 30 }, |
49 gps: { | 31 // GPS Pointer |
50 // GPS latitude ref | 32 34853: { |
51 1: { | 33 id: 0x8825, |
52 id: 0x1, | 34 format: 4, |
53 format: 2, | 35 componentCount: 1, |
54 componentCount: 2, | 36 value: 0 // The value is set by the encoder. |
55 value: 'N\0' | 37 } |
56 } | 38 }, |
39 exif: { | |
40 // Lens model | |
41 42036: { | |
42 id: 0xa434, | |
43 format: 2, | |
44 componentCount: 10, | |
45 value: 'LensModel\0' | |
46 } | |
47 }, | |
48 gps: { | |
49 // GPS latitude ref | |
50 1: { | |
51 id: 0x1, | |
52 format: 2, | |
53 componentCount: 2, | |
54 value: 'N\0' | |
57 } | 55 } |
58 } | 56 } |
59 } | 57 } |
60 }; | 58 }; |
61 | 59 |
62 var encoder = ImageEncoder.encodeMetadata(metadata, canvas, 1, | 60 var encoder = ImageEncoder.encodeMetadata(metadata, canvas, 1); |
63 new Date(2015, 0, 7, 15, 30, 6)); | |
64 | 61 |
65 // Assert that ExifEncoder is returned. | 62 // Assert that ExifEncoder is returned. |
66 assertTrue(encoder instanceof ExifEncoder); | 63 assertTrue(encoder instanceof ExifEncoder); |
67 | 64 |
68 var encodedResult = encoder.encode(); | 65 var encodedResult = encoder.encode(); |
69 | 66 |
70 // Decode encoded exif data. | 67 // Decode encoded exif data. |
71 var exifParser = new ExifParser(this); | 68 var exifParser = new ExifParser(this); |
72 | 69 |
73 // Redirect .log and .vlog to console.log for debugging. | 70 // Redirect .log and .vlog to console.log for debugging. |
(...skipping 23 matching lines...) Expand all Loading... | |
97 // Lens model | 94 // Lens model |
98 assertEquals('LensModel\0', parsedMetadata.ifd.exif[0xa434].value); | 95 assertEquals('LensModel\0', parsedMetadata.ifd.exif[0xa434].value); |
99 // GPS latitude ref | 96 // GPS latitude ref |
100 assertEquals('N\0', parsedMetadata.ifd.gps[0x1].value); | 97 assertEquals('N\0', parsedMetadata.ifd.gps[0x1].value); |
101 | 98 |
102 // Software should be set as Gallery.app | 99 // Software should be set as Gallery.app |
103 assertEquals('Chrome OS Gallery App\0', | 100 assertEquals('Chrome OS Gallery App\0', |
104 parsedMetadata.ifd.image[0x131].value); | 101 parsedMetadata.ifd.image[0x131].value); |
105 | 102 |
106 // Datetime should be updated. | 103 // Datetime should be updated. |
107 assertEquals('2015:01:07 15:30:06\0', parsedMetadata.ifd.image[0x132].value); | 104 assertTrue(!!parsedMetadata.ifd.image[0x132].value); |
yawano
2015/02/25 09:19:10
Could you check that this value is valid as exif d
hirono
2015/02/25 13:28:37
I re-thought about it and changed so that the enco
| |
108 | 105 |
109 // Thumbnail image | 106 // Thumbnail image |
110 assert(parsedMetadata.thumbnailTransform); | 107 assertTrue(!!parsedMetadata.thumbnailTransform); |
111 assert(parsedMetadata.thumbnailURL); | 108 assertTrue(!!parsedMetadata.thumbnailURL); |
112 } | 109 } |
OLD | NEW |