604e0c249e
Two dashes are used for flags with multiple characters, and one dash is used for flags with single characters. In GM, changed '-wp' to '-p' (the command to choose a directory for writing SKPs) to fit with the convention. In render_pictures and bench_pictures, changed the flag for read and write path to have full names (which are consistent) and use the old single character names as their shortcuts. SkCommandLineFlags: Updated the documentation, and only allow -h or --help for help (again, to match the convention). Also enforce the single character limit for the short name, and require the full name to be at least two characters. Provide full names for skhello. BUG=https://code.google.com/p/skia/issues/detail?id=1174 Review URL: https://codereview.chromium.org/12521019 git-svn-id: http://skia.googlecode.com/svn/trunk@8582 2bbb7eff-a529-9590-31e7-b0007b416f81
66 lines
1.8 KiB
C++
66 lines
1.8 KiB
C++
/*
|
|
* Copyright 2011 Google Inc.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*/
|
|
|
|
#include "SkCanvas.h"
|
|
#include "SkCommandLineFlags.h"
|
|
#include "SkGraphics.h"
|
|
#include "SkImageEncoder.h"
|
|
#include "SkString.h"
|
|
|
|
DEFINE_string2(outFile, o, "skhello.png", "The filename to write the image.");
|
|
DEFINE_string2(text, t, "Hello", "The string to write.");
|
|
|
|
int tool_main(int argc, char** argv);
|
|
int tool_main(int argc, char** argv) {
|
|
SkCommandLineFlags::SetUsage("");
|
|
SkCommandLineFlags::Parse(argc, argv);
|
|
|
|
SkAutoGraphics ag;
|
|
SkString path("skhello.png");
|
|
SkString text("Hello");
|
|
|
|
if (!FLAGS_outFile.isEmpty()) {
|
|
path.set(FLAGS_outFile[0]);
|
|
}
|
|
if (!FLAGS_text.isEmpty()) {
|
|
text.set(FLAGS_text[0]);
|
|
}
|
|
|
|
SkPaint paint;
|
|
paint.setAntiAlias(true);
|
|
paint.setTextSize(SkIntToScalar(30));
|
|
SkScalar width = paint.measureText(text.c_str(), text.size());
|
|
SkScalar spacing = paint.getFontSpacing();
|
|
|
|
int w = SkScalarRound(width) + 30;
|
|
int h = SkScalarRound(spacing) + 30;
|
|
SkBitmap bitmap;
|
|
bitmap.setConfig(SkBitmap::kARGB_8888_Config, w, h);
|
|
bitmap.allocPixels();
|
|
|
|
SkCanvas canvas(bitmap);
|
|
canvas.drawColor(SK_ColorWHITE);
|
|
|
|
paint.setTextAlign(SkPaint::kCenter_Align);
|
|
canvas.drawText(text.c_str(), text.size(),
|
|
SkIntToScalar(w)/2, SkIntToScalar(h)*2/3,
|
|
paint);
|
|
|
|
bool success = SkImageEncoder::EncodeFile(path.c_str(), bitmap,
|
|
SkImageEncoder::kPNG_Type, 100);
|
|
if (!success) {
|
|
SkDebugf("--- failed to write %s\n", path.c_str());
|
|
}
|
|
return !success;
|
|
}
|
|
|
|
#if !defined SK_BUILD_FOR_IOS
|
|
int main(int argc, char * const argv[]) {
|
|
return tool_main(argc, (char**) argv);
|
|
}
|
|
#endif
|