| /* |
| * Copyright 2016 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #include "include/codec/SkCodec.h" |
| #include "include/codec/SkEncodedOrigin.h" |
| #include "include/core/SkStream.h" |
| #include "tests/Test.h" |
| #include "tools/Resources.h" |
| |
| #include <memory> |
| #include <utility> |
| |
| DEF_TEST(ExifOrientation, r) { |
| std::unique_ptr<SkStream> stream(GetResourceAsStream("images/exif-orientation-2-ur.jpg")); |
| REPORTER_ASSERT(r, nullptr != stream); |
| if (!stream) { |
| return; |
| } |
| |
| std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream(std::move(stream))); |
| REPORTER_ASSERT(r, nullptr != codec); |
| SkEncodedOrigin origin = codec->getOrigin(); |
| REPORTER_ASSERT(r, kTopRight_SkEncodedOrigin == origin); |
| |
| codec = SkCodec::MakeFromStream(GetResourceAsStream("images/mandrill_512_q075.jpg")); |
| REPORTER_ASSERT(r, nullptr != codec); |
| origin = codec->getOrigin(); |
| REPORTER_ASSERT(r, kTopLeft_SkEncodedOrigin == origin); |
| } |
| |
| DEF_TEST(ExifOrientationInExif, r) { |
| std::unique_ptr<SkStream> stream(GetResourceAsStream("images/orientation/exif.jpg")); |
| |
| std::unique_ptr<SkCodec> codec = SkCodec::MakeFromStream(std::move(stream)); |
| REPORTER_ASSERT(r, nullptr != codec); |
| SkEncodedOrigin origin = codec->getOrigin(); |
| REPORTER_ASSERT(r, kLeftBottom_SkEncodedOrigin == origin); |
| } |
| |
| DEF_TEST(ExifOrientationInSubIFD, r) { |
| std::unique_ptr<SkStream> stream(GetResourceAsStream("images/orientation/subifd.jpg")); |
| |
| std::unique_ptr<SkCodec> codec = SkCodec::MakeFromStream(std::move(stream)); |
| REPORTER_ASSERT(r, nullptr != codec); |
| SkEncodedOrigin origin = codec->getOrigin(); |
| REPORTER_ASSERT(r, kLeftBottom_SkEncodedOrigin == origin); |
| } |