1
0
Fork 0
mirror of https://gitlab.com/Syping/gta5view-cmd synced 2024-11-21 13:10:23 +01:00

gta5view 1.9.x, eXtend added

This commit is contained in:
Syping 2020-11-15 13:19:18 +01:00
parent bfe4dcf306
commit add13d80bd
5 changed files with 189 additions and 228 deletions

2
.gitmodules vendored
View file

@ -1,4 +1,4 @@
[submodule "gta5view"] [submodule "gta5view"]
path = gta5view path = gta5view
url = https://gitlab.com/Syping/gta5view.git/ url = https://gitlab.com/Syping/gta5view.git/
branch = 1.8.x branch = 1.9.x

@ -1 +1 @@
Subproject commit f8049c817804c71c046ee5613d15dda555f5e441 Subproject commit 1b6cb511be6fbf86b89a0a3d7121d99796966e17

View file

@ -25,9 +25,11 @@ TEMPLATE = app
CONFIG += console CONFIG += console
SOURCES += main.cpp \ SOURCES += main.cpp \
gta5view/RagePhoto.cpp \
gta5view/SnapmaticPicture.cpp gta5view/SnapmaticPicture.cpp
HEADERS += \ HEADERS += \
gta5view/RagePhoto.h \
gta5view/SnapmaticPicture.h gta5view/SnapmaticPicture.h
INCLUDEPATH += ./gta5view INCLUDEPATH += ./gta5view

397
main.cpp
View file

@ -1,6 +1,6 @@
/***************************************************************************** /*****************************************************************************
* gta5view-cmd - gta5view Command Line * gta5view-cmd - gta5view Command Line
* Copyright (C) 2017-2018 Syping * Copyright (C) 2017-2020 Syping
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -32,11 +32,11 @@ int main(int argc, char *argv[])
QCoreApplication a(argc, argv); QCoreApplication a(argc, argv);
QStringList args = a.arguments(); QStringList args = a.arguments();
if (args.length() >= 3) if (args.length() >= 3) {
{
QString format = "jpg"; QString format = "jpg";
bool isDefault = true; bool isDefault = true;
bool avatarMode = false; bool avatarMode = false;
bool eXtendMode = false;
bool ignoreORes = false; bool ignoreORes = false;
bool convertToGTA = false; bool convertToGTA = false;
bool customFormat = false; bool customFormat = false;
@ -44,238 +44,241 @@ int main(int argc, char *argv[])
bool keepAspectRatio = true; bool keepAspectRatio = true;
QMap<QString,QString> flags; QMap<QString,QString> flags;
if (args.length() >= 4) if (args.length() >= 4) {
{ if (args.at(3) == "-pgta") {
if (args.at(3) == "-pgta")
{
convertToGTA = true; convertToGTA = true;
customFormat = false; customFormat = false;
} }
else if (args.at(3) == "-g5e") else if (args.at(3) == "-g5e") {
{
convertToGTA = true; convertToGTA = true;
customFormat = true; customFormat = true;
} }
else if (args.at(3) == "-jpg") else if (args.at(3) == "-jpg") {
{
format = "jpg"; format = "jpg";
convertToGTA = false; convertToGTA = false;
} }
} }
if (args.length() >= 5) if (args.length() >= 5) {
{ if (args.at(4) == "-a") {
if (args.at(4) == "-a")
{
isDefault = false; isDefault = false;
avatarMode = true; avatarMode = true;
} }
else if (args.at(4) == "-p") else if (args.at(4) == "-aX") {
{ isDefault = false;
avatarMode = true;
eXtendMode = true;
}
else if (args.at(4) == "-p") {
isDefault = false; isDefault = false;
avatarMode = false; avatarMode = false;
} }
else if (args.at(4) == "-d") else if (args.at(4) == "-pX") {
{ isDefault = false;
avatarMode = false;
eXtendMode = true;
}
else if (args.at(4) == "-d") {
isDefault = true; isDefault = true;
} }
else if (args.at(4) == "-fs") else if (args.at(4) == "-dX") {
{ isDefault = true;
eXtendMode = true;
}
else if (args.at(4) == "-fs") {
convertToGTA = false; convertToGTA = false;
formatSwitch = true; formatSwitch = true;
} }
else if (args.at(4) == "-aiar") else if (args.at(4) == "-aiar") {
{
isDefault = false; isDefault = false;
avatarMode = true; avatarMode = true;
keepAspectRatio = false; keepAspectRatio = false;
} }
else if (args.at(4) == "-akar") else if (args.at(4) == "-aiarX") {
{ isDefault = false;
avatarMode = true;
eXtendMode = true;
keepAspectRatio = false;
}
else if (args.at(4) == "-akar") {
isDefault = false; isDefault = false;
avatarMode = true; avatarMode = true;
keepAspectRatio = true; keepAspectRatio = true;
} }
else if (args.at(4) == "-piar") else if (args.at(4) == "-akarX") {
{ isDefault = false;
avatarMode = true;
eXtendMode = true;
keepAspectRatio = true;
}
else if (args.at(4) == "-piar") {
isDefault = false; isDefault = false;
avatarMode = false; avatarMode = false;
keepAspectRatio = false; keepAspectRatio = false;
} }
else if (args.at(4) == "-pkar") else if (args.at(4) == "-piarX") {
{ isDefault = false;
avatarMode = false;
eXtendMode = true;
keepAspectRatio = false;
}
else if (args.at(4) == "-pkar") {
isDefault = false; isDefault = false;
avatarMode = false; avatarMode = false;
keepAspectRatio = true; keepAspectRatio = true;
} }
else if (args.at(4) == "-diar") else if (args.at(4) == "-pkarX") {
{ isDefault = false;
avatarMode = false;
eXtendMode = true;
keepAspectRatio = true;
}
else if (args.at(4) == "-diar") {
isDefault = true; isDefault = true;
keepAspectRatio = false; keepAspectRatio = false;
} }
else if (args.at(4) == "-dkar") else if (args.at(4) == "-diarX") {
{ isDefault = true;
eXtendMode = true;
keepAspectRatio = false;
}
else if (args.at(4) == "-dkar") {
isDefault = true; isDefault = true;
keepAspectRatio = true; keepAspectRatio = true;
} }
else if (args.at(4) == "-ior") else if (args.at(4) == "-dkarX") {
{ isDefault = true;
eXtendMode = true;
keepAspectRatio = true;
}
else if (args.at(4) == "-ior") {
isDefault = false; isDefault = false;
ignoreORes = true; ignoreORes = true;
keepAspectRatio = false; keepAspectRatio = false;
} }
else else if (args.at(4) == "-iorX") {
{ isDefault = false;
ignoreORes = true;
eXtendMode = true;
keepAspectRatio = false;
}
else {
QStringList currentFlagArg = args.at(4).split("="); QStringList currentFlagArg = args.at(4).split("=");
QString currentFlag = currentFlagArg.at(0).toLower(); QString currentFlag = currentFlagArg.at(0).toLower();
if (currentFlag.left(1) == "-") if (currentFlag.at(0) == '-') {
{
currentFlag.remove(0, 1); currentFlag.remove(0, 1);
currentFlagArg.removeAt(0); currentFlagArg.removeFirst();
QString currentValue = currentFlagArg.join(QString()); const QString currentValue = currentFlagArg.join(QString());
flags[currentFlag] = currentValue; flags[currentFlag] = currentValue;
} }
} }
} }
if (args.length() >= 6) if (args.length() >= 6) {
{
QStringList flagArgs(args); QStringList flagArgs(args);
for (int argId = 0; argId == 5; argId++) for (int argId = 0; argId == 5; argId++) {
{
flagArgs.removeAt(argId); flagArgs.removeAt(argId);
} }
for (QString flagArg : flagArgs) for (const QString &flagArg : flagArgs) {
{
QStringList currentFlagArg = flagArg.split("="); QStringList currentFlagArg = flagArg.split("=");
QString currentFlag = currentFlagArg.at(0).toLower(); QString currentFlag = currentFlagArg.at(0).toLower();
if (currentFlag.left(1) == "-") if (currentFlag.at(0) == '-') {
{
currentFlag.remove(0, 1); currentFlag.remove(0, 1);
currentFlagArg.removeAt(0); currentFlagArg.removeFirst();
QString currentValue = currentFlagArg.join(QString()); const QString currentValue = currentFlagArg.join(QString());
flags[currentFlag] = currentValue; flags[currentFlag] = currentValue;
} }
} }
} }
if (!convertToGTA) if (!convertToGTA) {
{
SnapmaticPicture picture(args.at(1)); SnapmaticPicture picture(args.at(1));
if (picture.readingPicture(true, false, true)) if (picture.readingPicture(false)) {
{
QString filePath = args.at(2); QString filePath = args.at(2);
if (!formatSwitch) if (!formatSwitch) {
{
filePath.replace("<autodef>", picture.getExportPictureFileName()); filePath.replace("<autodef>", picture.getExportPictureFileName());
filePath.replace("<autoext>", ".jpg"); filePath.replace("<autoext>", ".jpg");
if (!picture.exportPicture(filePath, SnapmaticFormat::JPEG_Format)) if (!picture.exportPicture(filePath, SnapmaticFormat::JPEG_Format)) {
{ cout << "gta5view-cmd: Exporting of " << args.at(1).toStdString() << " to " << filePath.toStdString() << " is failed!" << endl;
cout << "gta5view-cmd: Exporting of " << args.at(1).toStdString().c_str() << " to " << filePath.toStdString().c_str() << " is failed!" << endl;
return 1; return 1;
} }
else else {
{ if (flags.value("output", QString()).toLower() == "exported_filename") {
if (flags.value("output", QString()).toLower() == "exported_filename") cout << filePath.toStdString() << endl;
{
cout << filePath.toStdString().c_str() << endl;
} }
else else {
{ cout << "gta5view-cmd: Exporting of " << args.at(1).toStdString() << " to " << filePath.toStdString() << " is successful!" << endl;
cout << "gta5view-cmd: Exporting of " << args.at(1).toStdString().c_str() << " to " << filePath.toStdString().c_str() << " is successful!" << endl;
} }
} }
} }
else else {
{
filePath.replace("<autodef>", picture.getPictureFileName()); filePath.replace("<autodef>", picture.getPictureFileName());
if (customFormat) if (customFormat) {
{
filePath.replace("<autoext>", ".g5e"); filePath.replace("<autoext>", ".g5e");
if (!picture.exportPicture(filePath, SnapmaticFormat::G5E_Format)) if (!picture.exportPicture(filePath, SnapmaticFormat::G5E_Format)) {
{ cout << "gta5view-cmd: Converting of " << args.at(1).toStdString() << " to " << filePath.toStdString() << " is failed!" << endl;
cout << "gta5view-cmd: Converting of " << args.at(1).toStdString().c_str() << " to " << filePath.toStdString().c_str() << " is failed!" << endl;
return 1; return 1;
} }
else else {
{ if (flags.value("output", QString()).toLower() == "exported_filename") {
if (flags.value("output", QString()).toLower() == "exported_filename") cout << filePath.toStdString() << endl;
{
cout << filePath.toStdString().c_str() << endl;
} }
else else {
{ cout << "gta5view-cmd: Converting of " << args.at(1).toStdString() << " to " << filePath.toStdString() << " is successful!" << endl;
cout << "gta5view-cmd: Converting of " << args.at(1).toStdString().c_str() << " to " << filePath.toStdString().c_str() << " is successful!" << endl;
} }
} }
} }
else else {
{
filePath.replace("<autoext>", ""); filePath.replace("<autoext>", "");
if (!picture.exportPicture(filePath, SnapmaticFormat::PGTA_Format)) if (!picture.exportPicture(filePath, SnapmaticFormat::PGTA_Format)) {
{ cout << "gta5view-cmd: Converting of " << args.at(1).toStdString() << " to " << filePath.toStdString() << " is failed!" << endl;
cout << "gta5view-cmd: Converting of " << args.at(1).toStdString().c_str() << " to " << filePath.toStdString().c_str() << " is failed!" << endl;
return 1; return 1;
} }
else else {
{ if (flags.value("output", QString()).toLower() == "exported_filename") {
if (flags.value("output", QString()).toLower() == "exported_filename") cout << filePath.toStdString() << endl;
{
cout << filePath.toStdString().c_str() << endl;
} }
else else {
{ cout << "gta5view-cmd: Converting of " << args.at(1).toStdString() << " to " << filePath.toStdString() << " is successful!" << endl;
cout << "gta5view-cmd: Converting of " << args.at(1).toStdString().c_str() << " to " << filePath.toStdString().c_str() << " is successful!" << endl;
} }
} }
} }
} }
} }
else else {
{ cout << "gta5view-cmd: Reading of " << args.at(1).toStdString() << " is failed!" << endl;
cout << "gta5view-cmd: Reading of " << args.at(1).toStdString().c_str() << " is failed!" << endl;
return 1; return 1;
} }
} }
else else {
{
SnapmaticPicture picture(":/template.g5e"); SnapmaticPicture picture(":/template.g5e");
if (picture.readingPicture(true, false, true)) if (picture.readingPicture(false)) {
{
QImage image; QImage image;
QFile imageFile(args.at(1)); QFile imageFile(args.at(1));
if (!imageFile.open(QFile::ReadOnly)) if (!imageFile.open(QFile::ReadOnly)) {
{ cout << "gta5view-cmd: Reading of " << args.at(1).toStdString() << " is failed!" << endl;
cout << "gta5view-cmd: Reading of " << args.at(1).toStdString().c_str() << " is failed!" << endl;
return 1; return 1;
} }
QImageReader imageReader; QImageReader imageReader;
imageReader.setDecideFormatFromContent(true); imageReader.setDecideFormatFromContent(true);
imageReader.setDevice(&imageFile); imageReader.setDevice(&imageFile);
if (!imageReader.read(&image)) if (!imageReader.read(&image)) {
{ cout << "gta5view-cmd: Parsing of " << args.at(1).toStdString() << " is failed!" << endl;
cout << "gta5view-cmd: Parsing of " << args.at(1).toStdString().c_str() << " is failed!" << endl;
return 1; return 1;
} }
if (!image.isNull()) if (!image.isNull()) {
{ if (!ignoreORes) {
if (!ignoreORes)
{
QSize snapmaticRes(960, 536); QSize snapmaticRes(960, 536);
QSize avatarRes(470, 470); QSize avatarRes(470, 470);
int avatarZoneX = 145; int avatarZoneX = 145;
int avatarZoneY = 66; int avatarZoneY = 66;
if (isDefault) if (isDefault) {
{ if (image.width() == image.height()) {
if (image.width() == image.height())
{
avatarMode = true; avatarMode = true;
} }
else else {
{
avatarMode = false; avatarMode = false;
} }
} }
if (!avatarMode) if (!avatarMode) {
{
QImage snapmaticImage(snapmaticRes, QImage::Format_RGB888); QImage snapmaticImage(snapmaticRes, QImage::Format_RGB888);
snapmaticImage.fill(Qt::black); snapmaticImage.fill(Qt::black);
QPainter snapmaticPainter(&snapmaticImage); QPainter snapmaticPainter(&snapmaticImage);
@ -283,59 +286,49 @@ int main(int argc, char *argv[])
// Picture mode // Picture mode
int diffWidth = 0; int diffWidth = 0;
int diffHeight = 0; int diffHeight = 0;
if (keepAspectRatio) if (keepAspectRatio) {
{
image = image.scaled(snapmaticRes, Qt::KeepAspectRatio, Qt::SmoothTransformation); image = image.scaled(snapmaticRes, Qt::KeepAspectRatio, Qt::SmoothTransformation);
if (image.width() != snapmaticRes.width()) if (image.width() != snapmaticRes.width()) {
{
diffWidth = snapmaticRes.width() - image.width(); diffWidth = snapmaticRes.width() - image.width();
diffWidth = diffWidth / 2; diffWidth = diffWidth / 2;
} }
else if (image.height() != snapmaticRes.height()) else if (image.height() != snapmaticRes.height()) {
{
diffHeight = snapmaticRes.height() - image.height(); diffHeight = snapmaticRes.height() - image.height();
diffHeight = diffHeight / 2; diffHeight = diffHeight / 2;
} }
} }
else else {
{
image = image.scaled(snapmaticRes.width(), snapmaticRes.height(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation); image = image.scaled(snapmaticRes.width(), snapmaticRes.height(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
} }
snapmaticPainter.drawImage(0 + diffWidth, 0 + diffHeight, image); snapmaticPainter.drawImage(0 + diffWidth, 0 + diffHeight, image);
snapmaticPainter.end(); snapmaticPainter.end();
image = snapmaticImage; image = snapmaticImage;
} }
else else {
{
QImage snapmaticImage(snapmaticRes, QImage::Format_RGB888); QImage snapmaticImage(snapmaticRes, QImage::Format_RGB888);
snapmaticImage.fill(Qt::black); snapmaticImage.fill(Qt::black);
QPainter snapmaticPainter(&snapmaticImage); QPainter snapmaticPainter(&snapmaticImage);
// Scale to Avatar Resolution if needed // Scale to Avatar Resolution if needed
if (image.width() != avatarRes.width()) if (image.width() != avatarRes.width()) {
{
image.scaled(avatarRes, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); image.scaled(avatarRes, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
} }
// Avatar mode // Avatar mode
int diffWidth = 0; int diffWidth = 0;
int diffHeight = 0; int diffHeight = 0;
if (keepAspectRatio) if (keepAspectRatio) {
{
image = image.scaled(avatarRes, Qt::KeepAspectRatio, Qt::SmoothTransformation); image = image.scaled(avatarRes, Qt::KeepAspectRatio, Qt::SmoothTransformation);
if (image.width() > image.height()) if (image.width() > image.height()) {
{
diffHeight = avatarRes.height() - image.height(); diffHeight = avatarRes.height() - image.height();
diffHeight = diffHeight / 2; diffHeight = diffHeight / 2;
} }
else if (image.width() < image.height()) else if (image.width() < image.height()) {
{
diffWidth = avatarRes.width() - image.width(); diffWidth = avatarRes.width() - image.width();
diffWidth = diffWidth / 2; diffWidth = diffWidth / 2;
} }
} }
else else {
{
image = image.scaled(avatarRes, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); image = image.scaled(avatarRes, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
} }
snapmaticPainter.drawImage(avatarZoneX + diffWidth, avatarZoneY + diffHeight, image); snapmaticPainter.drawImage(avatarZoneX + diffWidth, avatarZoneY + diffHeight, image);
@ -344,95 +337,75 @@ int main(int argc, char *argv[])
} }
} }
if (picture.setImage(image)) if (picture.setImage(image, eXtendMode)) {
{
int crew = 0; int crew = 0;
double posX = 0; double posX = 0;
double posY = 0; double posY = 0;
double posZ = 0; double posZ = 0;
QStringList players; QStringList players;
if (flags.contains("crew")) if (flags.contains("crew")) {
{
bool crewValid; bool crewValid;
int crewId = flags["crew"].toInt(&crewValid); int crewId = flags["crew"].toInt(&crewValid);
if (crewValid) if (crewValid) {
{
crew = crewId; crew = crewId;
} }
} }
if (flags.contains("title") && SnapmaticPicture::verifyTitle(flags["title"])) if (flags.contains("title") && SnapmaticPicture::verifyTitle(flags["title"])) {
{
picture.setPictureTitle(flags["title"]); picture.setPictureTitle(flags["title"]);
} }
else else {
{
avatarMode ? picture.setPictureTitle("Converted Avatar") : picture.setPictureTitle("Converted Picture"); avatarMode ? picture.setPictureTitle("Converted Avatar") : picture.setPictureTitle("Converted Picture");
} }
if (flags.contains("players")) if (flags.contains("players")) {
{
bool flagValid = true; bool flagValid = true;
QString playerFlag = flags["players"]; QString playerFlag = flags["players"];
if (playerFlag.left(1) == "[" && playerFlag.right(1) == "]") if (playerFlag.left(1) == "[" && playerFlag.right(1) == "]") {
{
playerFlag.remove(0, 1); playerFlag.remove(0, 1);
playerFlag.remove(playerFlag.length() - 1, 1); playerFlag.remove(playerFlag.length() - 1, 1);
} }
const QStringList playersList = playerFlag.split(","); const QStringList playersList = playerFlag.split(",");
for (QString player : playersList) for (QString player : playersList) {
{ if (player.left(1) == "\"" && player.right(1) == "\"") {
if (player.left(1) == "\"" && player.right(1) == "\"")
{
player.remove(0, 1); player.remove(0, 1);
player.remove(player.length() - 1, 1); player.remove(player.length() - 1, 1);
} }
bool playerValid; bool playerValid;
player.toInt(&playerValid); player.toInt(&playerValid);
if (!playerValid) if (!playerValid) {
{
flagValid = false; flagValid = false;
} }
} }
if (flagValid) if (flagValid) {
{
players = playersList; players = playersList;
} }
} }
if (flags.contains("position")) if (flags.contains("position")) {
{
bool flagValid = true; bool flagValid = true;
QString positionFlag = flags["position"]; QString positionFlag = flags["position"];
if (positionFlag.left(1) == "[" && positionFlag.right(1) == "]") if (positionFlag.left(1) == "[" && positionFlag.right(1) == "]") {
{
positionFlag.remove(0, 1); positionFlag.remove(0, 1);
positionFlag.remove(positionFlag.length() - 1, 1); positionFlag.remove(positionFlag.length() - 1, 1);
} }
const QStringList positionsList = positionFlag.split(","); const QStringList positionsList = positionFlag.split(",");
for (QString position : positionsList) for (QString position : positionsList) {
{ if (position.left(1) == "\"" && position.right(1) == "\"") {
if (position.left(1) == "\"" && position.right(1) == "\"")
{
position.remove(0, 1); position.remove(0, 1);
position.remove(position.length() - 1, 1); position.remove(position.length() - 1, 1);
} }
bool positionValid; bool positionValid;
position.toDouble(&positionValid); position.toDouble(&positionValid);
if (!positionValid) if (!positionValid) {
{
flagValid = false; flagValid = false;
} }
} }
if (flagValid) if (flagValid) {
{ if (positionsList.length() >= 1) {
if (positionsList.length() >= 1)
{
posX = positionsList.at(0).toDouble(); posX = positionsList.at(0).toDouble();
} }
if (positionsList.length() >= 2) if (positionsList.length() >= 2) {
{
posY = positionsList.at(1).toDouble(); posY = positionsList.at(1).toDouble();
} }
if (positionsList.length() >= 3) if (positionsList.length() >= 3) {
{
posZ = positionsList.at(2).toDouble(); posZ = positionsList.at(2).toDouble();
} }
} }
@ -451,76 +424,62 @@ int main(int argc, char *argv[])
picture.setPictureFileName(QString("PGTA5%1").arg(QString::number(pictureSP.uid))); picture.setPictureFileName(QString("PGTA5%1").arg(QString::number(pictureSP.uid)));
QString filePath = args.at(2); QString filePath = args.at(2);
filePath.replace("<autodef>", picture.getPictureFileName()); filePath.replace("<autodef>", picture.getPictureFileName());
if (!customFormat) if (!customFormat) {
{
filePath.replace("<autoext>", ""); filePath.replace("<autoext>", "");
if (!picture.exportPicture(filePath, SnapmaticFormat::PGTA_Format)) if (!picture.exportPicture(filePath, SnapmaticFormat::PGTA_Format)) {
{ cout << "gta5view-cmd: Converting of " << args.at(1).toStdString() << " to " << filePath.toStdString() << " is failed!" << endl;
cout << "gta5view-cmd: Converting of " << args.at(1).toStdString().c_str() << " to " << filePath.toStdString().c_str() << " is failed!" << endl;
return 1; return 1;
} }
else else {
{ if (flags.value("output", QString()).toLower() == "exported_filename") {
if (flags.value("output", QString()).toLower() == "exported_filename") cout << filePath.toStdString() << endl;
{
cout << filePath.toStdString().c_str() << endl;
} }
else else {
{ cout << "gta5view-cmd: Converting of " << args.at(1).toStdString() << " to " << filePath.toStdString() << " is successful!" << endl;
cout << "gta5view-cmd: Converting of " << args.at(1).toStdString().c_str() << " to " << filePath.toStdString().c_str() << " is successful!" << endl;
} }
} }
} }
else else {
{
filePath.replace("<autoext>", ".g5e"); filePath.replace("<autoext>", ".g5e");
if (!picture.exportPicture(filePath, SnapmaticFormat::G5E_Format)) if (!picture.exportPicture(filePath, SnapmaticFormat::G5E_Format)) {
{ cout << "gta5view-cmd: Converting of " << args.at(1).toStdString() << " to " << filePath.toStdString() << " is failed!" << endl;
cout << "gta5view-cmd: Converting of " << args.at(1).toStdString().c_str() << " to " << filePath.toStdString().c_str() << " is failed!" << endl;
return 1; return 1;
} }
else else {
{ if (flags.value("output", QString()).toLower() == "exported_filename") {
if (flags.value("output", QString()).toLower() == "exported_filename") cout << filePath.toStdString() << endl;
{
cout << filePath.toStdString().c_str() << endl;
} }
else else {
{ cout << "gta5view-cmd: Converting of " << args.at(1).toStdString() << " to " << filePath.toStdString() << " is successful!" << endl;
cout << "gta5view-cmd: Converting of " << args.at(1).toStdString().c_str() << " to " << filePath.toStdString().c_str() << " is successful!" << endl;
} }
} }
} }
} }
else else {
{
cout << "gta5view-cmd: Editing of Snapmatic Image Stream failed!" << endl; cout << "gta5view-cmd: Editing of Snapmatic Image Stream failed!" << endl;
return 1; return 1;
} }
} }
else else {
{ cout << "gta5view-cmd: " << args.at(1).toStdString() << " is invalid image!" << endl;
cout << "gta5view-cmd: " << args.at(1).toStdString().c_str() << " is invalid image!" << endl;
return 1; return 1;
} }
} }
else else {
{
cout << "gta5view-cmd: Reading of internal template failed!" << endl; cout << "gta5view-cmd: Reading of internal template failed!" << endl;
return 1; return 1;
} }
} }
} }
else else {
{
cout << "gta5view Command Line" << endl << endl; cout << "gta5view Command Line" << endl << endl;
cout << "Usage: " << args.at(0).toStdString().c_str() << " source target -format -mode -flag=value" << endl; cout << "Usage: " << args.at(0).toStdString() << " source target -format -mode -flag=value" << endl;
if (args.length() >= 2 && (args.at(1) == "--help" || args.at(1) == "-help")) if (args.length() >= 2 && (args.at(1) == "--help" || args.at(1) == "-help")) {
{
cout << "Convert-only: <autodef> (auto file name at convert)" << endl; cout << "Convert-only: <autodef> (auto file name at convert)" << endl;
cout << "Convert-only: <autoext> (auto file extension at convert)" << endl; cout << "Convert-only: <autoext> (auto file extension at convert)" << endl;
cout << "Formats: jpg pgta g5e" << endl; cout << "Formats: jpg pgta g5e" << endl;
cout << "Snapmatic Modes: a p d fs aiar akar piar pkar diar dkar ior" << endl; cout << "Snapmatic Modes: a p d fs aiar akar piar pkar diar dkar ior" << endl;
cout << "Snapmatic Modes: aX pX dX aiarX akarX piarX pkarX diarX dkarX iorX" << endl;
cout << "Snapmatic Flags: crew=int players=int[] position=double[] title=string" << endl; cout << "Snapmatic Flags: crew=int players=int[] position=double[] title=string" << endl;
cout << "Global Flags: output=string" << endl; cout << "Global Flags: output=string" << endl;
} }

View file

@ -7,8 +7,8 @@ CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "gta5view-cmd.exe.manifest"
#include <windows.h> #include <windows.h>
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 0, 4, 0, 0 FILEVERSION 0, 5, 0, 0
PRODUCTVERSION 0, 4, 0, 0 PRODUCTVERSION 0, 5, 0, 0
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
FILEFLAGS 0 FILEFLAGS 0
FILEOS VOS_NT_WINDOWS32 FILEOS VOS_NT_WINDOWS32
@ -25,12 +25,12 @@ BEGIN
BEGIN BEGIN
VALUE "CompanyName", "Syping" VALUE "CompanyName", "Syping"
VALUE "FileDescription", "gta5view-cmd" VALUE "FileDescription", "gta5view-cmd"
VALUE "FileVersion", "0.4.0" VALUE "FileVersion", "0.5.0"
VALUE "InternalName", "gta5view-cmd" VALUE "InternalName", "gta5view-cmd"
VALUE "LegalCopyright", "Copyright © 2017-2018 Syping" VALUE "LegalCopyright", "Copyright © 2017-2020 Syping"
VALUE "OriginalFilename", "gta5view-cmd.exe" VALUE "OriginalFilename", "gta5view-cmd.exe"
VALUE "ProductName", "gta5view-cmd" VALUE "ProductName", "gta5view-cmd"
VALUE "ProductVersion", "0.4.0" VALUE "ProductVersion", "0.5.0"
END END
END END
END END