skia2/gm/orientation.cpp

37 lines
1.1 KiB
C++
Raw Normal View History

/*
* Copyright 2018 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "gm/gm.h"
#include "include/core/SkCanvas.h"
#include "include/core/SkImage.h"
#include "include/core/SkRefCnt.h"
#include "include/core/SkString.h"
#include "tools/Resources.h"
// This gm draws 8 images that are mostly the same when respecting the
// EXIF orientation tag. Each one has four quadrants (red, blue, green,
// yellow), and labels on the left, top, right and bottom. The only
// visual difference is a number in the middle corresponding to the
// EXIF tag for that image's jpg file.
DEF_SIMPLE_GM(orientation, canvas, 400, 320) {
canvas->save();
for (char i = '1'; i <= '8'; i++) {
SkString path = SkStringPrintf("images/orientation/%c.jpg", i);
auto image = GetResourceAsImage(path.c_str());
if (!image) {
continue;
}
canvas->drawImage(image, 0, 0);
if ('4' == i) {
canvas->restore();
canvas->translate(0, image->height());
} else {
canvas->translate(image->width(), 0);
}
}
}