mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-10 04:57:00 -04:00
Suppress libpng errors.
This commit is contained in:
@@ -51,7 +51,7 @@ void Installer::validate(Version file_app_version) {
|
||||
try{
|
||||
String filename = p->name + _("/") + p->icon_url;
|
||||
InputStreamP img = openIn(p->name + _("/") + p->icon_url);
|
||||
p->icon.LoadFile(*img);
|
||||
image_load_file(p->icon, *img);
|
||||
} catch (...) {
|
||||
// ignore errors, it's just an image
|
||||
p->icon_url.clear();
|
||||
@@ -236,7 +236,7 @@ PackageDescription::PackageDescription(const Packaged& package)
|
||||
}
|
||||
// icon
|
||||
InputStreamP file = const_cast<Packaged&>(package).openIconFile();
|
||||
if (file) icon.LoadFile(*file);
|
||||
if (file) image_load_file(icon, *file);
|
||||
}
|
||||
|
||||
IMPLEMENT_REFLECTION_NO_SCRIPT(PackageDescription) {
|
||||
|
||||
@@ -419,7 +419,7 @@ Image PackagedImage::generate(const Options& opt) const {
|
||||
if (!opt.package) throw ScriptError(_("Can only load images in a context where an image is expected"));
|
||||
InputStreamP file = opt.package->openIn(filename);
|
||||
Image img;
|
||||
if (img.LoadFile(*file)) {
|
||||
if (image_load_file(img, *file)) {
|
||||
if (img.HasMask()) img.InitAlpha(); // we can't handle masks
|
||||
return img;
|
||||
} else {
|
||||
@@ -495,7 +495,7 @@ Image ImageValueToImage::generate(const Options& opt) const {
|
||||
Image image;
|
||||
if (!filename.empty()) {
|
||||
InputStreamP image_file = opt.local_package->openIn(filename);
|
||||
image.LoadFile(*image_file);
|
||||
image_load_file(image, *image_file);
|
||||
}
|
||||
if (!image.Ok()) {
|
||||
image = Image(max(1,opt.width), max(1,opt.height));
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#include <data/card.hpp>
|
||||
#include <gfx/gfx.hpp>
|
||||
#include <wx/imaglist.h>
|
||||
#include <gui/util.hpp>
|
||||
|
||||
DECLARE_TYPEOF_COLLECTION(FieldP);
|
||||
|
||||
@@ -62,7 +63,7 @@ class CardThumbnailRequest : public ThumbnailRequest {
|
||||
try {
|
||||
ImageCardList* parent = (ImageCardList*)owner;
|
||||
Image image;
|
||||
if (image.LoadFile(*parent->set->openIn(filename))) {
|
||||
if (image_load_file(image, *parent->set->openIn(filename))) {
|
||||
// two step anti aliased resampling
|
||||
image.Rescale(36, 28); // step 1: no anti aliassing
|
||||
return resample(image, 18, 14); // step 2: with anti aliassing
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include <util/io/package_manager.hpp>
|
||||
#include <util/alignment.hpp>
|
||||
#include <script/profiler.hpp>
|
||||
#include <gui/util.hpp>
|
||||
|
||||
DECLARE_TYPEOF_COLLECTION(PackagedP);
|
||||
|
||||
@@ -75,7 +76,7 @@ void PackageList::showData(const String& pattern) {
|
||||
InputStreamP stream = p->openIconFile();
|
||||
Image img;
|
||||
Bitmap bmp;
|
||||
if (stream && img.LoadFile(*stream)) {
|
||||
if (stream && image_load_file(img, *stream)) {
|
||||
bmp = Bitmap(img);
|
||||
}
|
||||
// add to list
|
||||
|
||||
+25
-8
@@ -126,6 +126,19 @@ void draw_checker(RotatedDC& dc, const RealRect& rect) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------- : Image related
|
||||
|
||||
bool image_load_file(Image& image, wxInputStream &stream) {
|
||||
wxLogNull noLog;
|
||||
return image.LoadFile(stream);
|
||||
}
|
||||
|
||||
bool image_load_file(Image& image, const wxString &name) {
|
||||
wxLogNull noLog;
|
||||
return image.LoadFile(name);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------- : Resource related
|
||||
|
||||
Image load_resource_image(const String& name) {
|
||||
@@ -144,22 +157,24 @@ Image load_resource_image(const String& name) {
|
||||
|
||||
int len = ::SizeofResource(wxGetInstance(), hResource);
|
||||
wxMemoryInputStream stream(data, len);
|
||||
|
||||
wxLogNull noLog;
|
||||
return wxImage(stream);
|
||||
#elif defined(__GNUC__)
|
||||
static String path = wxStandardPaths::Get().GetDataDir() + _("/resource/");
|
||||
String file = path + name;
|
||||
wxImage resource;
|
||||
if (wxFileExists(file + _(".png"))) resource.LoadFile(file + _(".png"));
|
||||
else if (wxFileExists(file + _(".bmp"))) resource.LoadFile(file + _(".bmp"));
|
||||
else if (wxFileExists(file + _(".ico"))) resource.LoadFile(file + _(".ico"));
|
||||
else if (wxFileExists(file + _(".cur"))) resource.LoadFile(file + _(".cur"));
|
||||
if (wxFileExists(file + _(".png"))) image_load_file(resource, file + _(".png"));
|
||||
else if (wxFileExists(file + _(".bmp"))) image_load_file(resource, file + _(".bmp"));
|
||||
else if (wxFileExists(file + _(".ico"))) image_load_file(resource, file + _(".ico"));
|
||||
else if (wxFileExists(file + _(".cur"))) image_load_file(resource, file + _(".cur"));
|
||||
if (resource.Ok()) return resource;
|
||||
static String local_path = wxStandardPaths::Get().GetUserDataDir() + _("/resource/");
|
||||
file = local_path + name;
|
||||
if (wxFileExists(file + _(".png"))) resource.LoadFile(file + _(".png"));
|
||||
else if (wxFileExists(file + _(".bmp"))) resource.LoadFile(file + _(".bmp"));
|
||||
else if (wxFileExists(file + _(".ico"))) resource.LoadFile(file + _(".ico"));
|
||||
else if (wxFileExists(file + _(".cur"))) resource.LoadFile(file + _(".cur"));
|
||||
if (wxFileExists(file + _(".png"))) image_load_file(resource, file + _(".png"));
|
||||
else if (wxFileExists(file + _(".bmp"))) image_load_file(resource, file + _(".bmp"));
|
||||
else if (wxFileExists(file + _(".ico"))) image_load_file(resource, file + _(".ico"));
|
||||
else if (wxFileExists(file + _(".cur"))) image_load_file(resource, file + _(".cur"));
|
||||
if (!resource.Ok()) handle_error(InternalError(String(_("Cannot find resource file at ")) + path + name + _(" or ") + file));
|
||||
return resource;
|
||||
#else
|
||||
@@ -169,6 +184,7 @@ Image load_resource_image(const String& name) {
|
||||
|
||||
wxCursor load_resource_cursor(const String& name) {
|
||||
#if defined(__WXMSW__) && !defined(__GNUC__)
|
||||
wxLogNull noLog;
|
||||
return wxCursor(_("cursor/") + name, wxBITMAP_TYPE_CUR_RESOURCE);
|
||||
#else
|
||||
return wxCursor(load_resource_image(_("cursor/") + name));
|
||||
@@ -176,6 +192,7 @@ wxCursor load_resource_cursor(const String& name) {
|
||||
}
|
||||
|
||||
wxIcon load_resource_icon(const String& name) {
|
||||
wxLogNull noLog;
|
||||
#if defined(__WXMSW__) && !defined(__GNUC__)
|
||||
return wxIcon(_("icon/") + name);
|
||||
#else
|
||||
|
||||
@@ -40,6 +40,14 @@ void clearDC_black(DC& dc);
|
||||
/// Draw a checkerboard pattern
|
||||
void draw_checker(RotatedDC& dc, const RealRect&);
|
||||
|
||||
// ----------------------------------------------------------------------------- : Image related
|
||||
|
||||
/// Proxy around Image.LoadFile that suppresses errors.
|
||||
bool image_load_file(Image& image, wxInputStream &stream);
|
||||
|
||||
/// Proxy around Image.LoadFile that suppresses errors.
|
||||
bool image_load_file(Image& image, const wxString &name);
|
||||
|
||||
// ----------------------------------------------------------------------------- : Resource related
|
||||
|
||||
/// Load an image from a resource
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include <data/format/clipboard.hpp>
|
||||
#include <data/action/value.hpp>
|
||||
#include <wx/clipbrd.h>
|
||||
#include <gui/util.hpp>
|
||||
|
||||
// ----------------------------------------------------------------------------- : ImageValueEditor
|
||||
|
||||
@@ -23,7 +24,12 @@ bool ImageValueEditor::onLeftDClick(const RealPoint&, wxMouseEvent&) {
|
||||
wxOPEN, wxGetTopLevelParent(&editor()));
|
||||
if (!filename.empty()) {
|
||||
settings.default_image_dir = wxPathOnly(filename);
|
||||
sliceImage(wxImage(filename));
|
||||
wxImage image;
|
||||
{
|
||||
wxLogNull noLog;
|
||||
image = wxImage(filename);
|
||||
}
|
||||
sliceImage(image);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -61,7 +67,7 @@ bool ImageValueEditor::doCopy() {
|
||||
// load image
|
||||
InputStreamP image_file = getLocalPackage().openIn(value().filename);
|
||||
Image image;
|
||||
if (!image.LoadFile(*image_file)) return false;
|
||||
if (!image_load_file(image, *image_file)) return false;
|
||||
// set data
|
||||
if (!wxTheClipboard->Open()) return false;
|
||||
bool ok = wxTheClipboard->SetData(new wxBitmapDataObject(image));
|
||||
|
||||
@@ -33,7 +33,7 @@ void ImageValueViewer::draw(RotatedDC& dc) {
|
||||
if (!value().filename.empty()) {
|
||||
try {
|
||||
InputStreamP image_file = getLocalPackage().openIn(value().filename);
|
||||
if (image.LoadFile(*image_file)) {
|
||||
if (image_load_file(image, *image_file)) {
|
||||
image.Rescale(w, h);
|
||||
}
|
||||
} CATCH_ALL_ERRORS(false);
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include <util/prec.hpp>
|
||||
#include <render/value/package_choice.hpp>
|
||||
#include <util/io/package_manager.hpp>
|
||||
#include <gui/util.hpp>
|
||||
|
||||
DECLARE_TYPEOF_COLLECTION(PackagedP);
|
||||
DECLARE_TYPEOF_COLLECTION(PackageChoiceValueViewer::Item);
|
||||
@@ -37,7 +38,7 @@ void PackageChoiceValueViewer::initItems() {
|
||||
i.name = capitalize_sentence(p->short_name);
|
||||
Image image;
|
||||
InputStreamP stream = p->openIconFile();
|
||||
if (stream && image.LoadFile(*stream)) {
|
||||
if (stream && image_load_file(image, *stream)) {
|
||||
i.image = Bitmap(resample(image, 16,16));
|
||||
}
|
||||
items.push_back(i);
|
||||
|
||||
Reference in New Issue
Block a user