MagickPPExport int Magick::operator == (const Magick::Geometry& left_, const Magick::Geometry& right_) { return((left_.aspect() == right_.aspect()) && (left_.fillArea() == right_.fillArea()) && (left_.greater() == right_.greater()) && (left_.height() == right_.height()) && (left_.isValid() == right_.isValid()) && (left_.less() == right_.less()) && (left_.limitPixels() == right_.limitPixels()) && (left_.percent() == right_.percent()) && (left_.width() == right_.width()) && (left_.xOff() == right_.xOff()) && (left_.yOff() == right_.yOff())); }
Magick::Geometry scale (const Magick::Geometry& geometry) const { return Magick::Geometry (x_scale_ * geometry.width (), y_scale_ * geometry.height (), x_scale_ * geometry.xOff (), y_scale_ * geometry.yOff ()); }
// Frame image Magick::frameImage::frameImage( const Magick::Geometry &geometry_ ) : _width( geometry_.width() ), _height( geometry_.height() ), _outerBevel( geometry_.xOff() ), _innerBevel( geometry_.yOff() ) { }
Magick::floodFillTextureImage::floodFillTextureImage( const Magick::Geometry &point_, const Magick::Image &texture_ ) : _x(point_.xOff()), _y(point_.yOff()), _texture(texture_), _borderColor() { }
Magick::floodFillColorImage::floodFillColorImage( const Magick::Geometry &point_, const Magick::Color &fillColor_ ) : _x(point_.xOff()), _y(point_.yOff()), _fillColor(fillColor_), _borderColor() { }
int Magick::operator == ( const Magick::Geometry& left_, const Magick::Geometry& right_ ) { return ( ( left_.isValid() == right_.isValid() ) && ( left_.width() == right_.width() ) && ( left_.height() == right_.height() ) && ( left_.xOff() == right_.xOff() ) && ( left_.yOff() == right_.yOff() ) && ( left_.xNegative() == right_.xNegative() ) && ( left_.yNegative() == right_.yNegative() ) && ( left_.percent() == right_.percent() ) && ( left_.aspect() == right_.aspect() ) && ( left_.greater() == right_.greater() ) && ( left_.less() == right_.less() ) ); }
Magick::compositeImage::compositeImage( const Magick::Image &compositeImage_, const Magick::Geometry &offset_, Magick::CompositeOperator compose_ ) : _compositeImage( compositeImage_ ), _xOffset ( offset_.xOff() ), _yOffset ( offset_.yOff() ), _compose ( compose_ ) { }
Magick::floodFillTextureImage::floodFillTextureImage( const Magick::Geometry &point_,const Magick::Image &texture_, const Magick::Color &borderColor_,const bool invert_) : _x(point_.xOff()), _y(point_.yOff()), _texture(texture_), _borderColor(borderColor_), _invert(invert_) { }
void KBuild::Symbol::Frame::getGeometry(Magick::Geometry& geo) const { using namespace Magick; const Image atlas = parent->parent->atlases[getAtlasIdx()].second; float_type w0 = atlas.columns(); float_type h0 = atlas.rows(); geo.xOff(size_t( floor(w0*atlas_bbox.x()) )); geo.yOff(size_t( floor(h0*atlas_bbox.y()) )); geo.width(size_t( floor(w0*atlas_bbox.w() + 0.5) )); geo.height(size_t( floor(h0*atlas_bbox.h() + 0.5) )); }
DefinitionFile * ResourcePackerScreen::ProcessPSD(const String & processDirectoryPath, const String & psdPathname, const String & psdName) { int32 maxTextureSize = 1024; if (CommandLineParser::Instance()->IsFlagSet("--tsize2048")) { maxTextureSize = 2048; } // TODO: Check CRC32 std::vector<Magick::Image> layers; String psdNameWithoutExtension = FileSystem::ReplaceExtension(psdName, ""); try { Magick::readImages(&layers, psdPathname); if (layers.size() == 0) { Logger::Error("Number of layers is too low: %s", psdPathname.c_str()); return 0; } if (layers.size() == 1) { layers.push_back(layers[0]); } //Logger::Debug("psd file: %s wext: %s", psdPathname.c_str(), psdNameWithoutExtension.c_str()); int width = (int)layers[0].columns(); int height = (int)layers[0].rows(); for(int k = 1; k < (int)layers.size(); ++k) { Magick::Image & currentLayer = layers[k]; /* MagickCore::ResetImagePropertyIterator(currentLayer.image()); const char * property = MagickCore::GetNextImageProperty(currentLayer.image()); if (property != (const char *) NULL) { printf(" Properties:\n"); while (property != (const char *) NULL) { printf(" %c",*property); if (strlen(property) > 1) printf("%s: ",property+1); if (strlen(property) > 80) printf("\n"); const char * value = MagickCore::GetImageProperty(currentLayer.image(), property); if (value != (const char *) NULL) printf("%s\n",value); property = MagickCore::GetNextImageProperty(currentLayer.image()); } } */ currentLayer.crop(Magick::Geometry(width,height, 0, 0)); currentLayer.magick("PNG"); String outputFile = processDirectoryPath + String("/") + psdNameWithoutExtension; outputFile += String(Format("%d.png", k - 1)); currentLayer.write(outputFile); } DefinitionFile * defFile = new DefinitionFile; defFile->filename = processDirectoryPath + String("/") + psdNameWithoutExtension + String(".txt"); // Logger::Debug("filename: %s", defFile->filename.c_str()); defFile->spriteWidth = width; defFile->spriteHeight = height; defFile->frameCount = (int)layers.size() -1; defFile->frameRects = new Rect2i[defFile->frameCount]; for(int k = 1; k < (int)layers.size(); ++k) { Magick::Image & currentLayer = layers[k]; Magick::Geometry bbox = currentLayer.page(); int xOff = (int)bbox.xOff(); if (bbox.xNegative()) xOff = -xOff; int yOff = (int)bbox.yOff(); if (bbox.yNegative()) yOff = -yOff; defFile->frameRects[k - 1] = Rect2i(xOff, yOff, (int32)bbox.width(), (int32)bbox.height()); //printf("Percent: %d Aspect: %d Greater: %d Less: %d\n", (int)bbox.percent(), (int)bbox.aspect(), (int)bbox.greater(), (int)bbox.less()); if ((defFile->frameRects[k - 1].dx >= maxTextureSize) || (defFile->frameRects[k - 1].dy >= maxTextureSize)) { printf("* WARNING * - frame of %s layer %d is bigger than maxTextureSize(%d) layer exportSize (%d x %d) FORCE REDUCE TO (%d x %d). Bewarned!!! Results not guaranteed!!!\n", psdName.c_str(), k - 1, maxTextureSize , defFile->frameRects[k - 1].dx, defFile->frameRects[k - 1].dy, width, height); defFile->frameRects[k - 1].dx = width; defFile->frameRects[k - 1].dy = height; } if (CommandLineParser::Instance()->IsFlagSet("--add0pixel")) { }else if (CommandLineParser::Instance()->IsFlagSet("--add1pixel")) { defFile->frameRects[k - 1].dx++; defFile->frameRects[k - 1].dy++; } else if (CommandLineParser::Instance()->IsFlagSet("--add2pixel")) { defFile->frameRects[k - 1].dx+=2; defFile->frameRects[k - 1].dy+=2; } else if (CommandLineParser::Instance()->IsFlagSet("--add4pixel")) { defFile->frameRects[k - 1].dx+=4; defFile->frameRects[k - 1].dy+=4; } else if(CommandLineParser::Instance()->IsFlagSet("--add2sidepixel")) { defFile->frameRects[k - 1].dx+=2; defFile->frameRects[k - 1].dy+=2; } else { defFile->frameRects[k - 1].dx++; defFile->frameRects[k - 1].dy++; } } return defFile; } catch( Magick::Exception &error_ ) { std::cout << "Caught exception: " << error_.what() << " file: "<< psdPathname << std::endl; return 0; } return 0; }