本文整理汇总了C++中magick::Geometry::width方法的典型用法代码示例。如果您正苦于以下问题:C++ Geometry::width方法的具体用法?C++ Geometry::width怎么用?C++ Geometry::width使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类magick::Geometry
的用法示例。
在下文中一共展示了Geometry::width方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: return
int Magick::operator < ( const Magick::Geometry& left_,
const Magick::Geometry& right_ )
{
return (
( left_.width() * left_.height() )
<
( right_.width() * right_.height() )
);
}
示例2: return
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()));
}
示例3: scale
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 ());
}
示例4:
// Frame image
Magick::frameImage::frameImage( const Magick::Geometry &geometry_ )
: _width( geometry_.width() ),
_height( geometry_.height() ),
_outerBevel( geometry_.xOff() ),
_innerBevel( geometry_.yOff() )
{
}
示例5: return
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() )
);
}
示例6: floor
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) ));
}
示例7: copyImage
void copyImage(Magick::Image& src,
yarp::sig::ImageOf<yarp::sig::PixelRgb>& dest) {
Magick::Geometry g = src.size();
int h = g.height();
int w = g.width();
src.depth(8);
dest.resize(w,h);
for (int i=0; i<h; i++) {
// must transfer row by row, since YARP may use padding in representation
Magick::PixelPacket *packet = src.getPixels(0,i,w,1);
src.writePixels(Magick::RGBQuantum,(unsigned char *)(&dest.pixel(0,i)));
}
src.syncPixels();
}
示例8: target
ResizeTest(std::string fileName) {
source.loadFile(fileName);
for (int i=1; i<99; ++i) {
Magick::Image image = source.getImage();
image.magick("JPEG");
image.quality(50);
Magick::Geometry resizeGeometry;
resizeGeometry.percent(true);
resizeGeometry.width(i);
resizeGeometry.height(i);
image.resize(resizeGeometry);
Magick::Blob blob;
image.write(&blob);
imghash::Source target((char*)blob.data(), blob.length());
images.push_back(target);
}
}
示例9: resize
bool convert::resize( long numOfPix, const string &fIN, const string &fOUT ) {
string outf;
if ( fOUT == "" ) outf = fIN;
else outf = fOUT;
#ifdef HAVE_MAGICK
Magick::Image img;
try {
img.ping( fIN );
Magick::Geometry sz = img.size();
uint w = sz.width(), h = sz.height();
if ( w*h <= numOfPix ) return true;
double factor = sqrt((double)numOfPix/(double)(w*h));
stringstream ss;
ss << floor(w*factor) << "x" << floor(h*factor) << ">";
img.read( fIN );
img.scale( ss.str() );
img.write( outf );
return true;
} catch ( Magick::Exception &ex ) {
cerr << " Exception while reading/resizing image: " << ex.what() << endl;
return false;
}
#else // ! HAVE_MAGICK++
string cmd("-resize");
stringstream ss;
ss << numOfPix << "@> ";
int pid = fork();
int status;
switch( pid ) {
case 0:
execl( pathToConvert.c_str(), fIN.c_str(), cmd.c_str(), ss.str().c_str(), outf.c_str(), (char *) NULL );
return false;
break;
default:
waitpid( pid, &status, 0 );
return WIFEXITED( status );
}
#endif // HAVE_MAGICK
}
示例10: imageCaptured
void TimeLapseCapture::imageCaptured(QString format, Magick::Blob blob, Magick::Geometry sizeHint) {
bool readRawFromFile = false;
QString framePath = output.path() + QDir::separator()
+ leadingZeros(capturedCnt, FRAME_FILE_LEADING_ZEROS) + "_" + leadingZeros(capturedSubsequence, 2);
if (format == "RGB") {
if (storeRawImages) {
// store RAW RGB data in PPM format
QString pgmHeader = QString("P6\n%1 %2\n255\n").arg(sizeHint.width()).arg(sizeHint.height());
std::string headerStr = pgmHeader.toStdString();
const char *headerBytes = headerStr.c_str();
size_t headerLen = strlen(headerBytes);
if (shutterSpdAlg != NULL && capturedSubsequence == 0) {
Magick::Image capturedImage;
capturedImage.read(blob, sizeHint, 8, "RGB");
shutterSpdAlg->update(capturedImage);
}
framePath += ".ppm";
QFile file(framePath);
file.open(QIODevice::WriteOnly);
file.write(headerBytes, headerLen);
file.write((char*) blob.data(), blob.length());
file.close();
} else {
// convert RGB data to JPEG
Magick::Image capturedImage;
capturedImage.read(blob, sizeHint, 8, "RGB");
if (shutterSpdAlg != NULL && capturedSubsequence == 0) {
shutterSpdAlg->update(capturedImage);
}
QDateTime now = QDateTime::currentDateTime();
QString exifDateTime = now.toString("yyyy:MM:dd HH:mm:ss");\
// ImageMagick don't support writing of exif data
// TODO: setup exif timestamp correctly
capturedImage.attribute("EXIF:DateTime", exifDateTime.toStdString());
//capturedImage.defineValue("EXIF", "DateTime", exifDateTime.toStdString());
capturedImage.compressType(Magick::JPEGCompression);
capturedImage.magick("JPEG");
framePath += ".jpeg";
capturedImage.write(framePath.toStdString());
}
} else {
if (shutterSpdAlg != NULL && capturedSubsequence == 0) {
try {
Magick::Image capturedImage;
capturedImage.read(blob, format.toStdString());
shutterSpdAlg->update(capturedImage);
} catch (const std::exception &e) {
err << "Failed to decode captured image (" << format << "): " << QString::fromUtf8(e.what()) << endl;
readRawFromFile = true;
}
}
// store other formats in device specific format
framePath += "." + format;
QFile file(framePath);
file.open(QIODevice::WriteOnly);
file.write((char*) blob.data(), blob.length());
file.close();
if (readRawFromFile && shutterSpdAlg != NULL && capturedSubsequence == 0) {
/* I don't understand ImageMagick correctly, but it fails with reading RAW files
* from memory blob, but reading from file works (sometimes).
* Maybe, it don't support delegating (dcraw, ufraw...) with memory data...
*/
try {
Magick::Image capturedImage;
capturedImage.read(framePath.toStdString());
shutterSpdAlg->update(capturedImage);
} catch (const std::exception &e) {
err << "Failed to decode captured image (" << framePath << "): " << QString::fromUtf8(e.what()) << endl;
}
}
}
verboseOutput << "Captured frame saved to " << framePath << endl;
capturedSubsequence++;
}
示例11: if
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;
}
//.........这里部分代码省略.........