void avtImageRepresentation::GetSize(int *_rowSize, int *_colSize) { // What do we do if the image hasn't been parsed out of the string // when this function is called? In the other query functions of this // class, we automatically call GetImageFromString on the caller's // behalf. However, all those calls ultimately need that to occur // to return the object a caller is looking for; a vtkImageData object // or a z-buffer. Here, we only want to return two ints representing // the size. So, we wind up doing problem sized work to satisfy // the query. Nonetheless, its a good assumption the client actually // wants some that data sometime in the future anyway. if (asVTK == NULL) { if (asChar == NULL) { EXCEPTION0(NoInputException); } GetImageFromString(asChar, asCharLength, asVTK, zbuffer); } int *imageDims = asVTK->GetDimensions(); *_rowSize = imageDims[1]; // #rows is y-size *_colSize = imageDims[0]; // #cols is x-size }
float * avtImageRepresentation::GetZBuffer(void) { // // Not all images have z-buffers. If we have a VTK image and no z-buffer // then there is no z-buffer. If we don't have the VTK image, we should // parse out the image and potentially the z-buffer from the marshall // string. // if (asVTK == NULL) { if (asChar == NULL) { EXCEPTION0(NoInputException); } GetImageFromString(asChar, asCharLength, asVTK, zbuffer); if (zbuffer != NULL) { zbufferRef = new int(1); } } return zbuffer; }
vtkImageData * avtImageRepresentation::GetImageVTK(void) { if (asVTK == NULL) { if (asChar == NULL) { EXCEPTION0(NoInputException); } GetImageFromString(asChar, asCharLength, asVTK, zbuffer); } return asVTK; }
void MythPainter::DrawText(const QRect &r, const QString &msg, int flags, const MythFontProperties &font, int alpha, const QRect &boundRect) { MythImage *im = GetImageFromString(msg, flags, r, font); if (!im) return; QRect destRect(boundRect); QRect srcRect(0,0,r.width(),r.height()); if (!boundRect.isEmpty() && boundRect != r) { int x = 0; int y = 0; int width = boundRect.width(); int height = boundRect.height(); if (boundRect.x() > r.x()) { x = boundRect.x()-r.x(); } else if (r.x() > boundRect.x()) { destRect.setX(r.x()); width = (boundRect.x() + boundRect.width()) - r.x(); } if (boundRect.y() > r.y()) { y = boundRect.y()-r.y(); } else if (r.y() > boundRect.y()) { destRect.setY(r.y()); height = (boundRect.y() + boundRect.height()) - r.y(); } if (width <= 0 || height <= 0) return; srcRect.setRect(x,y,width,height); } DrawImage(destRect, im, srcRect, alpha); im->DecrRef(); }
// **************************************************************************** // Method: avtImageRepresentation::GetRGBBuffer // // Purpose: // Gets the rgb-buffer of the image. // // Returns: The rgb-buffer for the image, if it exists. // // Programmer: Mark C. Miller // Creation: 04Mar03 // // **************************************************************************** unsigned char * avtImageRepresentation::GetRGBBuffer(void) { if (asVTK == NULL) { if (asChar == NULL) { EXCEPTION0(NoInputException); } GetImageFromString(asChar, asCharLength, asVTK, zbuffer); if (zbuffer != NULL) { zbufferRef = new int(1); } } return (unsigned char *)asVTK->GetScalarPointer(0, 0, 0); }
void MythYUVAPainter::DrawText(const QRect &dest, const QString &msg, int flags, const MythFontProperties &font, int alpha, const QRect &boundRect) { MythFontProperties *converted = GetConvertedFont(font); if (converted) { // We pull an image here, in the hopes that when DrawText // pulls an image this will still be in the cache and have // the right properties. MythImage *im = GetImageFromString(msg, flags, dest, *converted); if (im) { im->SetToYUV(); im->DecrRef(); im = NULL; } MythQImagePainter::DrawText(dest, msg, flags, *converted, alpha, boundRect); } }