Logo ROOT  
Reference Guide
TASImage.h
Go to the documentation of this file.
1 // @(#)root/asimage:$Id$
2 // Author: Fons Rademakers, Reiner Rohlfs 28/11/2001
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2001, Rene Brun, Fons Rademakers and Reiner Rohlfs *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TASImage
13 #define ROOT_TASImage
14 
15 //////////////////////////////////////////////////////////////////////////
16 // //
17 // TASImage //
18 // //
19 // Interface to image processing library libAfterImage. //
20 // //
21 //////////////////////////////////////////////////////////////////////////
22 
23 
24 #include "TImage.h"
25 
26 struct ASImage;
27 struct ASVisual;
28 class TBrowser;
29 class THashTable;
30 
31 class TASImage : public TImage {
32 
33 private:
34  enum { kNoZoom = 0, kZoom = 1, kZoomOps = -1 };
36 
37  void DrawVLine(UInt_t x, UInt_t y1, UInt_t y2, UInt_t col, UInt_t thick);
38  void DrawHLine(UInt_t y, UInt_t x1, UInt_t x2, UInt_t col, UInt_t thick);
39  void DrawLineInternal(UInt_t x1, UInt_t y1, UInt_t x2, UInt_t y2, UInt_t col, UInt_t thick);
40  void DrawWideLine(UInt_t x1, UInt_t y1, UInt_t x2, UInt_t y2, UInt_t col, UInt_t thick);
41  void DrawDashHLine(UInt_t y, UInt_t x1, UInt_t x2, UInt_t nDash, const char *pDash, UInt_t col, UInt_t thick);
42  void DrawDashVLine(UInt_t x, UInt_t y1, UInt_t y2, UInt_t nDash, const char *pDash, UInt_t col, UInt_t thick);
43  void DrawDashZLine(UInt_t x1, UInt_t y1, UInt_t x2, UInt_t y2, UInt_t nDash, const char *pDash, UInt_t col);
44  void DrawDashZTLine(UInt_t x1, UInt_t y1, UInt_t x2, UInt_t y2, UInt_t nDash, const char *pDash, UInt_t col, UInt_t thick);
45  Bool_t GetPolygonSpans(UInt_t npt, TPoint *ppt, UInt_t *nspans, TPoint **firstPoint, UInt_t **firstWidth);
46  void GetFillAreaSpans(UInt_t npt, TPoint *ppt, UInt_t *nspans, TPoint **firstPoint, UInt_t **firstWidth);
47  inline Int_t Idx(Int_t idx);
49  void DrawTextTTF(Int_t x, Int_t y, const char *text, Int_t size, UInt_t color, const char *font_name, Float_t angle);
50  void DrawGlyph(void *bitmap, UInt_t color, Int_t x, Int_t y);
51  void SetDefaults();
52  void CreateThumbnail();
53  void DestroyImage();
54  const char *TypeFromMagicNumber(const char *file);
55 
56 protected:
57  ASImage *fImage; ///<! pointer to image structure of original image
58  TASImage *fScaledImage; ///<! temporary scaled and zoomed image produced from original image
59  Double_t fMaxValue; ///<! max value in image
60  Double_t fMinValue; ///<! min value in image
61  UInt_t fZoomOffX; ///<! X - offset for zooming in image pixels
62  UInt_t fZoomOffY; ///<! Y - offset for zooming im image pixels
63  UInt_t fZoomWidth; ///<! width of zoomed image in image pixels
64  UInt_t fZoomHeight; ///<! hight of zoomed image in image pixels
65  Int_t fZoomUpdate; ///<! kZoom - new zooming required, kZoomOps - other ops in action, kNoZoom - no zooming or ops
66  Bool_t fEditable; ///<! kTRUE image can be resized, moved by resizing/moving gPad
67  Int_t fPaintMode; ///<! 1 - fast mode, 0 - low memory slow mode
68  ASImage *fGrayImage; ///<! gray image
69  Bool_t fIsGray; ///<! kTRUE if image is gray
70  static THashTable *fgPlugList; ///<! hash table containing loaded plugins
71 
72  static ASVisual *fgVisual; ///< pointer to visual structure
73  static Bool_t fgInit; ///< global flag to init afterimage only once
74 
75  EImageFileTypes GetFileType(const char *ext);
76  void MapFileTypes(EImageFileTypes &type, UInt_t &astype, Bool_t toas = kTRUE);
77  void MapQuality(EImageQuality &quality, UInt_t &asquality, Bool_t toas = kTRUE);
78 
79  static Bool_t InitVisual();
80 
81 public:
82  TASImage();
83  TASImage(UInt_t w, UInt_t h);
84  TASImage(const char *file, EImageFileTypes type = kUnknown);
85  TASImage(const char *name, const Double_t *imageData, UInt_t width, UInt_t height, TImagePalette *palette = 0);
86  TASImage(const char *name, const TArrayD &imageData, UInt_t width, TImagePalette *palette = 0);
87  TASImage(const char *name, const TVectorD &imageData, UInt_t width, TImagePalette *palette = 0);
88  TASImage(const TASImage &img);
89  TASImage &operator=(const TASImage &img);
90  virtual ~TASImage();
91 
92  TObject *Clone(const char *newname) const;
93 
94  void SetEditable(Bool_t on = kTRUE) { fEditable = on; } //*TOGGLE*
95  Bool_t IsEditable() const { return fEditable; }
96  void Browse(TBrowser *);
97  void SetTitle(const char *title=""); // *MENU*
98  const char *GetTitle() const;
99  const char *GetIconName() const { return GetTitle(); }
100 
101  // Pad conversions
102  void FromPad(TVirtualPad *pad, Int_t x = 0, Int_t y = 0,
103  UInt_t w = 0, UInt_t h = 0);
104  void Draw(Option_t *option = "");
105  void Paint(Option_t *option = "");
107  void ExecuteEvent(Int_t event, Int_t px, Int_t py);
108  char *GetObjectInfo(Int_t px, Int_t py) const;
109 
110  // Transformations
111  void SetPalette(const TImagePalette *palette);
112  void Zoom(UInt_t offX, UInt_t offY, UInt_t width, UInt_t height); //*MENU*
113  void UnZoom(); //*MENU*
114  void Flip(Int_t flip = 180); //*MENU*
115  void Mirror(Bool_t vert = kTRUE); //*MENU*
116  void Scale(UInt_t width, UInt_t height); //*MENU*
117  void Slice(UInt_t xStart, UInt_t xEnd, UInt_t yStart, UInt_t yEnd,
118  UInt_t toWidth, UInt_t toHeight); //*MENU*
119  void Tile(UInt_t width, UInt_t height); //*MENU*
120  void Crop(Int_t x = 0, Int_t y = 0, UInt_t width = 0, UInt_t height = 0); //*MENU*
121  void Pad(const char *color = "#00FFFFFF", UInt_t left = 0,
122  UInt_t right = 0, UInt_t top = 0, UInt_t bottom = 0); //*MENU*
123  void Blur(Double_t hr = 3, Double_t vr = 3); //*MENU*
124  Double_t *Vectorize(UInt_t max_colors = 256, UInt_t dither = 4, Int_t opaque_threshold = 1);
125  void Gray(Bool_t on = kTRUE); //*TOGGLE* *GETTER=IsGray
126  void StartPaletteEditor(); //*MENU*
127  void HSV(UInt_t hue = 0, UInt_t radius = 360, Int_t H = 0, Int_t S = 0, Int_t V = 0,
128  Int_t x = 0, Int_t y = 0, UInt_t width = 0, UInt_t height = 0);
129  void Merge(const TImage *im, const char *op = "alphablend", Int_t x = 0, Int_t y = 0);
130  void Append(const TImage *im, const char * option = "+", const char *color = "#00000000");
131  void Gradient(UInt_t angle = 0, const char *colors = "#FFFFFF #000000", const char *offsets = 0,
132  Int_t x = 0, Int_t y = 0, UInt_t width = 0, UInt_t height = 0);
133  void Bevel(Int_t x = 0, Int_t y = 0, UInt_t width = 0, UInt_t height = 0, const char *hi = "#ffdddddd",
134  const char *lo = "#ff555555", UShort_t thick = 1, Bool_t pressed = kFALSE);
135  void DrawText(Int_t x = 0, Int_t y = 0, const char *text = "", Int_t size = 12,
136  const char *color = 0, const char *font = "fixed", EText3DType type = TImage::kPlain,
137  const char *fore_file = 0, Float_t angle = 0);
138  void DrawText(TText *text, Int_t x = 0, Int_t y = 0);
139 
140  // Vector graphics
141  void BeginPaint(Bool_t fast = kTRUE);
142  void EndPaint();
143  void DrawLine(UInt_t x1, UInt_t y1, UInt_t x2, UInt_t y2, const char *col = "#000000", UInt_t thick = 1);
144  void DrawDashLine(UInt_t x1, UInt_t y1, UInt_t x2, UInt_t y2, UInt_t nDash, const char *pDash, const char *col = "#000000", UInt_t thick = 1);
145  void DrawBox(Int_t x1, Int_t y1, Int_t x2, Int_t y2, const char *col = "#000000", UInt_t thick = 1, Int_t mode = 0);
146  void DrawRectangle(UInt_t x, UInt_t y, UInt_t w, UInt_t h, const char *col = "#000000", UInt_t thick = 1);
147  void FillRectangle(const char *col = 0, Int_t x = 0, Int_t y = 0, UInt_t width = 0, UInt_t height = 0);
148  void DrawPolyLine(UInt_t nn, TPoint *xy, const char *col = "#000000", UInt_t thick = 1, TImage::ECoordMode mode = kCoordModeOrigin);
149  void PutPixel(Int_t x, Int_t y, const char *col = "#000000");
150  void PolyPoint(UInt_t npt, TPoint *ppt, const char *col = "#000000", TImage::ECoordMode mode = kCoordModeOrigin);
151  void DrawSegments(UInt_t nseg, Segment_t *seg, const char *col = "#000000", UInt_t thick = 1);
152  void FillPolygon(UInt_t npt, TPoint *ppt, const char *col = "#000000", const char *stipple = 0, UInt_t w = 16, UInt_t h = 16);
153  void FillPolygon(UInt_t npt, TPoint *ppt, TImage *tile);
154  void CropPolygon(UInt_t npt, TPoint *ppt);
155  void DrawFillArea(UInt_t npt, TPoint *ppt, const char *col = "#000000", const char *stipple = 0, UInt_t w = 16, UInt_t h = 16);
156  void DrawFillArea(UInt_t npt, TPoint *ppt, TImage *tile);
157  void FillSpans(UInt_t npt, TPoint *ppt, UInt_t *widths, const char *col = "#000000", const char *stipple = 0, UInt_t w = 16, UInt_t h = 16);
158  void FillSpans(UInt_t npt, TPoint *ppt, UInt_t *widths, TImage *tile);
159  void CropSpans(UInt_t npt, TPoint *ppt, UInt_t *widths);
160  void CopyArea(TImage *dst, Int_t xsrc, Int_t ysrc, UInt_t w, UInt_t h, Int_t xdst = 0, Int_t ydst = 0, Int_t gfunc = 3, EColorChan chan = kAllChan);
161  void DrawCellArray(Int_t x1, Int_t y1, Int_t x2, Int_t y2, Int_t nx, Int_t ny, UInt_t *ic);
162  void FloodFill(Int_t x, Int_t y, const char *col, const char *min_col, const char *max_col = 0);
163  void DrawCubeBezier(Int_t x1, Int_t y1, Int_t x2, Int_t y2, Int_t x3, Int_t y3, const char *col = "#000000", UInt_t thick = 1);
164  void DrawStraightEllips(Int_t x, Int_t y, Int_t rx, Int_t ry, const char *col = "#000000", Int_t thick = 1);
165  void DrawCircle(Int_t x, Int_t y, Int_t r, const char *col = "#000000", Int_t thick = 1);
166  void DrawEllips(Int_t x, Int_t y, Int_t rx, Int_t ry, Int_t angle, const char *col = "#000000", Int_t thick = 1);
167  void DrawEllips2(Int_t x, Int_t y, Int_t rx, Int_t ry, Int_t angle, const char *col = "#000000", Int_t thick = 1);
168 
169  // Input / output
170  void ReadImage(const char *file, EImageFileTypes type = TImage::kUnknown);
171  void WriteImage(const char *file, EImageFileTypes type = TImage::kUnknown); //*MENU*
172  void SetImage(const Double_t *imageData, UInt_t width, UInt_t height, TImagePalette *palette = 0);
173  void SetImage(const TArrayD &imageData, UInt_t width, TImagePalette *palette = 0);
174  void SetImage(const TVectorD &imageData, UInt_t width, TImagePalette *palette = 0);
175  void SetImage(Pixmap_t pxm, Pixmap_t mask = 0);
176  void FromWindow(Drawable_t wid, Int_t x = 0, Int_t y = 0, UInt_t w = 0, UInt_t h = 0);
177  void FromGLBuffer(UChar_t* buf, UInt_t w, UInt_t h);
178 
179  // Utilities
180  UInt_t GetWidth() const;
181  UInt_t GetHeight() const;
182  UInt_t GetScaledWidth() const;
183  UInt_t GetScaledHeight() const;
184  Bool_t IsValid() const { return fImage ? kTRUE : kFALSE; }
185  Bool_t IsGray() const { return fIsGray; }
186  ASImage *GetImage() const { return fImage; }
187  void SetImage(ASImage *image) { DestroyImage(); fImage = image; }
188  TImage *GetScaledImage() const { return fScaledImage; }
190  Pixmap_t GetMask();
191  TArrayL *GetPixels(Int_t x = 0, Int_t y = 0, UInt_t w = 0, UInt_t h = 0);
193  UInt_t *GetArgbArray();
194  UInt_t *GetRgbaArray();
197  void GetImageBuffer(char **buffer, int *size, EImageFileTypes type = TImage::kPng);
198  void GetZoomPosition(UInt_t &x, UInt_t &y, UInt_t &w, UInt_t &h) const;
200  void PaintImage(Drawable_t wid, Int_t x, Int_t y, Int_t xsrc = 0, Int_t ysrc = 0, UInt_t wsrc = 0, UInt_t hsrc = 0, Option_t *opt = "");
201  void SetPaletteEnabled(Bool_t on = kTRUE); // *TOGGLE*
202  void SavePrimitive(std::ostream &out, Option_t *option = "");
203 
204  static const ASVisual *GetVisual();
205  static UInt_t AlphaBlend(UInt_t bot, UInt_t top);
206  static void Image2Drawable(ASImage *im, Drawable_t wid, Int_t x, Int_t y, Int_t xsrc = 0, Int_t ysrc = 0, UInt_t wsrc = 0, UInt_t hsrc = 0, Option_t *opt = "");
207 
208  // some static functions
209  Bool_t SetJpegDpi(const char *name, UInt_t dpi = 72);
210 
211  ClassDef(TASImage,2) // image processing class
212 };
213 
214 #endif
TASImage::Bevel
void Bevel(Int_t x=0, Int_t y=0, UInt_t width=0, UInt_t height=0, const char *hi="#ffdddddd", const char *lo="#ff555555", UShort_t thick=1, Bool_t pressed=kFALSE)
Bevel is used to create 3D effect while drawing buttons, or any other image that needs to be framed.
Definition: TASImage.cxx:3251
TASImage::DrawStraightEllips
void DrawStraightEllips(Int_t x, Int_t y, Int_t rx, Int_t ry, const char *col="#000000", Int_t thick=1)
Draw a straight ellipse.
Definition: TASImage.cxx:6358
TASImage::fgVisual
static ASVisual * fgVisual
pointer to visual structure
Definition: TASImage.h:72
TASImage::GetScaledWidth
UInt_t GetScaledWidth() const
Return width of the displayed image not of the original image.
Definition: TASImage.cxx:2168
TASImage::DrawDashHLine
void DrawDashHLine(UInt_t y, UInt_t x1, UInt_t x2, UInt_t nDash, const char *pDash, UInt_t col, UInt_t thick)
Draw a dashed horizontal line.
Definition: TASImage.cxx:4172
TASImage::fZoomHeight
UInt_t fZoomHeight
! hight of zoomed image in image pixels
Definition: TASImage.h:64
TBrowser
Using a TBrowser one can browse all ROOT objects.
Definition: TBrowser.h:37
kTRUE
const Bool_t kTRUE
Definition: RtypesCore.h:91
TASImage::InitVisual
static Bool_t InitVisual()
Static function to initialize the ASVisual.
Definition: TASImage.cxx:2197
Pixmap_t
Handle_t Pixmap_t
Definition: GuiTypes.h:29
H
#define H(x, y, z)
TASImage::Gray
void Gray(Bool_t on=kTRUE)
Convert RGB image to Gray image and vice versa.
Definition: TASImage.cxx:6525
TASImage::SetPalette
void SetPalette(const TImagePalette *palette)
Set a new palette to an image.
Definition: TASImage.cxx:1857
TImage::kCoordModeOrigin
@ kCoordModeOrigin
Definition: TImage.h:86
TASImage::StartPaletteEditor
void StartPaletteEditor()
Start palette editor.
Definition: TASImage.cxx:2251
TASImage::IsGray
Bool_t IsGray() const
Definition: TASImage.h:185
TASImage::GetObjectInfo
char * GetObjectInfo(Int_t px, Int_t py) const
Get image pixel coordinates and the pixel value at the mouse pointer.
Definition: TASImage.cxx:1816
Option_t
const char Option_t
Definition: RtypesCore.h:66
TImage::EText3DType
EText3DType
Definition: TImage.h:58
TASImage::FromPad
void FromPad(TVirtualPad *pad, Int_t x=0, Int_t y=0, UInt_t w=0, UInt_t h=0)
Create an image from the given pad, afterwards this image can be saved in any of the supported image ...
Definition: TASImage.cxx:1073
TASImage::FromGLBuffer
void FromGLBuffer(UChar_t *buf, UInt_t w, UInt_t h)
Creates an image (screenshot) from a RGBA buffer.
Definition: TASImage.cxx:6691
TASImage::DrawEllips
void DrawEllips(Int_t x, Int_t y, Int_t rx, Int_t ry, Int_t angle, const char *col="#000000", Int_t thick=1)
Draw an ellipse.
Definition: TASImage.cxx:6438
UShort_t
unsigned short UShort_t
Definition: RtypesCore.h:40
TImage::kPlain
@ kPlain
Definition: TImage.h:59
TImage::EColorChan
EColorChan
Definition: TImage.h:90
TASImage::SavePrimitive
void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
Definition: TASImage.cxx:6741
TASImage::Browse
void Browse(TBrowser *)
Browse image.
Definition: TASImage.cxx:6265
TASImage::Append
void Append(const TImage *im, const char *option="+", const char *color="#00000000")
Append image.
Definition: TASImage.cxx:3493
r
ROOT::R::TRInterface & r
Definition: Object.C:4
TASImage::IsEditable
Bool_t IsEditable() const
Definition: TASImage.h:95
TASImage::GetZoomPosition
void GetZoomPosition(UInt_t &x, UInt_t &y, UInt_t &w, UInt_t &h) const
Return the zoom parameters.
Definition: TASImage.cxx:2186
colors
Color * colors
Definition: X3DBuffer.c:21
TASImage::DrawGlyph
void DrawGlyph(void *bitmap, UInt_t color, Int_t x, Int_t y)
Draw glyph bitmap.
Definition: TASImage.cxx:5714
TASImage::DrawFillArea
void DrawFillArea(UInt_t npt, TPoint *ppt, const char *col="#000000", const char *stipple=0, UInt_t w=16, UInt_t h=16)
Fill a polygon (any type convex, non-convex).
Definition: TASImage.cxx:5433
TASImage::fZoomOffY
UInt_t fZoomOffY
! Y - offset for zooming im image pixels
Definition: TASImage.h:62
TASImage::GetHeight
UInt_t GetHeight() const
Return height of original image not of the displayed image.
Definition: TASImage.cxx:2159
TAttImage::EImageQuality
EImageQuality
Definition: TAttImage.h:63
Float_t
float Float_t
Definition: RtypesCore.h:57
width
include TDocParser_001 C image html pict1_TDocParser_001 png width
Definition: TDocParser.cxx:121
TASImage::DestroyImage
void DestroyImage()
Destroy image.
Definition: TASImage.cxx:177
TASImage::DrawLineInternal
void DrawLineInternal(UInt_t x1, UInt_t y1, UInt_t x2, UInt_t y2, UInt_t col, UInt_t thick)
Internal line drawing.
Definition: TASImage.cxx:3922
flip
void flip(struct mesh *m, struct behavior *b, struct otri *flipedge)
Definition: triangle.c:7889
TASImage::Tile
void Tile(UInt_t width, UInt_t height)
Tile the original image.
Definition: TASImage.cxx:1983
Int_t
int Int_t
Definition: RtypesCore.h:45
TASImage::GetScanline
UInt_t * GetScanline(UInt_t y)
Return a pointer to scan-line.
Definition: TASImage.cxx:3667
TASImage::UnZoom
void UnZoom()
Un-zoom the image to original size.
Definition: TASImage.cxx:2045
TASImage::fIsGray
Bool_t fIsGray
! kTRUE if image is gray
Definition: TASImage.h:69
TImage
An abstract interface to image processing library.
Definition: TImage.h:29
x
Double_t x[n]
Definition: legend1.C:17
TASImage::Zoom
void Zoom(UInt_t offX, UInt_t offY, UInt_t width, UInt_t height)
The area of an image displayed in a pad is defined by this function.
Definition: TASImage.cxx:2023
TASImage::FromWindow
void FromWindow(Drawable_t wid, Int_t x=0, Int_t y=0, UInt_t w=0, UInt_t h=0)
Create an image (screenshot) from specified window.
Definition: TASImage.cxx:6639
RooFitShortHand::S
RooArgSet S(const RooAbsArg &v1)
Definition: RooGlobalFunc.cxx:348
TASImage::PutPixel
void PutPixel(Int_t x, Int_t y, const char *col="#000000")
Draw a point at the specified position.
Definition: TASImage.cxx:4694
TImage::ECoordMode
ECoordMode
Definition: TImage.h:85
TASImage::Draw
void Draw(Option_t *option="")
Draw image.
Definition: TASImage.cxx:1169
TASImage::HSV
void HSV(UInt_t hue=0, UInt_t radius=360, Int_t H=0, Int_t S=0, Int_t V=0, Int_t x=0, Int_t y=0, UInt_t width=0, UInt_t height=0)
This function will tile original image to specified size with offsets requested, and then it will go ...
Definition: TASImage.cxx:2948
TASImage::fZoomWidth
UInt_t fZoomWidth
! width of zoomed image in image pixels
Definition: TASImage.h:63
TASImage::Flip
void Flip(Int_t flip=180)
Flip image in place.
Definition: TASImage.cxx:2073
Bool_t
bool Bool_t
Definition: RtypesCore.h:63
text
TText * text
Definition: entrylist_figure1.C:10
TASImage::fEditable
Bool_t fEditable
! kTRUE image can be resized, moved by resizing/moving gPad
Definition: TASImage.h:66
TASImage::fMinValue
Double_t fMinValue
! min value in image
Definition: TASImage.h:60
TASImage::GetPolygonSpans
Bool_t GetPolygonSpans(UInt_t npt, TPoint *ppt, UInt_t *nspans, TPoint **firstPoint, UInt_t **firstWidth)
The code is based on Xserver/mi/mipolycon.c "Copyright 1987, 1998 The Open Group".
Definition: TASImage.cxx:5206
TASImage::FillPolygon
void FillPolygon(UInt_t npt, TPoint *ppt, const char *col="#000000", const char *stipple=0, UInt_t w=16, UInt_t h=16)
Fill a convex polygon with background color or bitmap.
Definition: TASImage.cxx:5351
bool
TASImage::kZoomOps
@ kZoomOps
Definition: TASImage.h:34
TASImage::GetArgbArray
UInt_t * GetArgbArray()
Return a pointer to internal array[width x height] of ARGB32 values This array is directly accessible...
Definition: TASImage.cxx:3593
TASImage::~TASImage
virtual ~TASImage()
Image destructor, clean up image and visual.
Definition: TASImage.cxx:353
TASImage::AlphaBlend
static UInt_t AlphaBlend(UInt_t bot, UInt_t top)
Return alpha-blended value computed from bottom and top pixel values.
Definition: TASImage.cxx:5158
TASImage::DrawEllips2
void DrawEllips2(Int_t x, Int_t y, Int_t rx, Int_t ry, Int_t angle, const char *col="#000000", Int_t thick=1)
Draw an ellipse.
Definition: TASImage.cxx:6478
TASImage::DrawCircle
void DrawCircle(Int_t x, Int_t y, Int_t r, const char *col="#000000", Int_t thick=1)
Draw a circle.
Definition: TASImage.cxx:6398
TASImage::DrawRectangle
void DrawRectangle(UInt_t x, UInt_t y, UInt_t w, UInt_t h, const char *col="#000000", UInt_t thick=1)
Draw a rectangle.
Definition: TASImage.cxx:4083
x1
static const double x1[5]
Definition: RooGaussKronrodIntegrator1D.cxx:346
TImage.h
Drawable_t
Handle_t Drawable_t
Definition: GuiTypes.h:30
xy
XPoint xy[kMAXMK]
Definition: TGX11.cxx:123
TASImage::Idx
Int_t Idx(Int_t idx)
Return a valid index in fImage tables to avoid seg-fault by accessing out of indices out of array's r...
Definition: TASImage.cxx:6841
TASImage::BeginPaint
void BeginPaint(Bool_t fast=kTRUE)
BeginPaint initializes internal array[width x height] of ARGB32 pixel values.
Definition: TASImage.cxx:3534
gWebImagePalette
R__EXTERN TImagePalette * gWebImagePalette
Definition: TAttImage.h:110
TASImage::DrawCubeBezier
void DrawCubeBezier(Int_t x1, Int_t y1, Int_t x2, Int_t y2, Int_t x3, Int_t y3, const char *col="#000000", UInt_t thick=1)
Draw a cubic bezier line.
Definition: TASImage.cxx:6317
TASImage::GetPixels
TArrayL * GetPixels(Int_t x=0, Int_t y=0, UInt_t w=0, UInt_t h=0)
Return 2D array of machine dependent pixel values.
Definition: TASImage.cxx:2408
hi
float type_of_call hi(const int &, const int &)
TASImage::fPaintMode
Int_t fPaintMode
! 1 - fast mode, 0 - low memory slow mode
Definition: TASImage.h:67
TASImage::DrawBox
void DrawBox(Int_t x1, Int_t y1, Int_t x2, Int_t y2, const char *col="#000000", UInt_t thick=1, Int_t mode=0)
Draw a box.
Definition: TASImage.cxx:4123
TASImage::FillSpans
void FillSpans(UInt_t npt, TPoint *ppt, UInt_t *widths, const char *col="#000000", const char *stipple=0, UInt_t w=16, UInt_t h=16)
Fill spans with specified color or/and stipple.
Definition: TASImage.cxx:4812
TASImage::CropSpans
void CropSpans(UInt_t npt, TPoint *ppt, UInt_t *widths)
Crop spans.
Definition: TASImage.cxx:4927
TASImage::GetVisual
static const ASVisual * GetVisual()
Return visual.
Definition: TASImage.cxx:5169
TASImage::DistancetoPrimitive
Int_t DistancetoPrimitive(Int_t px, Int_t py)
Is the mouse in the image ?
Definition: TASImage.cxx:1680
TASImage::GetFileType
EImageFileTypes GetFileType(const char *ext)
Return file type depending on specified extension.
Definition: TASImage.cxx:820
TASImage::PolyPoint
void PolyPoint(UInt_t npt, TPoint *ppt, const char *col="#000000", TImage::ECoordMode mode=kCoordModeOrigin)
Draw a poly point.
Definition: TASImage.cxx:4729
TASImage::GetImageBuffer
void GetImageBuffer(char **buffer, int *size, EImageFileTypes type=TImage::kPng)
Return in-memory buffer compressed according image type.
Definition: TASImage.cxx:5990
TASImage::SetImageBuffer
Bool_t SetImageBuffer(char **buffer, EImageFileTypes type=TImage::kPng)
Create image from compressed buffer.
Definition: TASImage.cxx:6042
TASImage::DrawDashZLine
void DrawDashZLine(UInt_t x1, UInt_t y1, UInt_t x2, UInt_t y2, UInt_t nDash, const char *pDash, UInt_t col)
Draw a dashed line with one pixel width.
Definition: TASImage.cxx:4283
TASImage::FillRectangleInternal
void FillRectangleInternal(UInt_t col, Int_t x, Int_t y, UInt_t width, UInt_t height)
Fill rectangle of size (width, height) at position (x,y) within the existing image with specified col...
Definition: TASImage.cxx:3737
TASImage::GetMask
Pixmap_t GetMask()
Returns image mask pixmap (alpha channel).
Definition: TASImage.cxx:2302
TASImage::FloodFill
void FloodFill(Int_t x, Int_t y, const char *col, const char *min_col, const char *max_col=0)
Flood fill.
Definition: TASImage.cxx:6517
TASImage::MapQuality
void MapQuality(EImageQuality &quality, UInt_t &asquality, Bool_t toas=kTRUE)
Map quality to/from AfterImage quality.
Definition: TASImage.cxx:949
x3
static const double x3[11]
Definition: RooGaussKronrodIntegrator1D.cxx:392
TASImage::Merge
void Merge(const TImage *im, const char *op="alphablend", Int_t x=0, Int_t y=0)
Merge two images.
Definition: TASImage.cxx:2721
THashTable
THashTable implements a hash table to store TObject's.
Definition: THashTable.h:35
TASImage::DrawDashZTLine
void DrawDashZTLine(UInt_t x1, UInt_t y1, UInt_t x2, UInt_t y2, UInt_t nDash, const char *pDash, UInt_t col, UInt_t thick)
Draw a dashed line with thick pixel width.
Definition: TASImage.cxx:4467
TASImage::CreateThumbnail
void CreateThumbnail()
Create image thumbnail.
Definition: TASImage.cxx:6089
TImage::kAllChan
@ kAllChan
Definition: TImage.h:95
h
#define h(i)
Definition: RSha256.hxx:106
TASImage::Slice
void Slice(UInt_t xStart, UInt_t xEnd, UInt_t yStart, UInt_t yEnd, UInt_t toWidth, UInt_t toHeight)
Another method of enlarging images where corners remain unchanged, but middle part gets tiled.
Definition: TASImage.cxx:1947
TASImage::GetScaledHeight
UInt_t GetScaledHeight() const
Return height of the displayed image not of the original image.
Definition: TASImage.cxx:2177
TASImage::GetArray
TArrayD * GetArray(UInt_t w=0, UInt_t h=0, TImagePalette *pal=gWebImagePalette)
In case of vectorized image return an associated array of doubles otherwise this method creates and r...
Definition: TASImage.cxx:2502
kFALSE
const Bool_t kFALSE
Definition: RtypesCore.h:92
TASImage::DrawPolyLine
void DrawPolyLine(UInt_t nn, TPoint *xy, const char *col="#000000", UInt_t thick=1, TImage::ECoordMode mode=kCoordModeOrigin)
Draw a polyline.
Definition: TASImage.cxx:4669
TASImage::Gradient
void Gradient(UInt_t angle=0, const char *colors="#FFFFFF #000000", const char *offsets=0, Int_t x=0, Int_t y=0, UInt_t width=0, UInt_t height=0)
Render multipoint gradient inside rectangle of size (width, height) at position (x,...
Definition: TASImage.cxx:3011
TASImage::DrawTextTTF
void DrawTextTTF(Int_t x, Int_t y, const char *text, Int_t size, UInt_t color, const char *font_name, Float_t angle)
Draw text using TrueType fonts.
Definition: TASImage.cxx:5955
TASImage
Image class.
Definition: TASImage.h:31
TImage::kUnknown
@ kUnknown
Definition: TImage.h:54
TASImage::kReadWritePNG
@ kReadWritePNG
Definition: TASImage.h:35
TASImage::GetPixmap
Pixmap_t GetPixmap()
Returns image pixmap.
Definition: TASImage.cxx:2270
TASImage::Crop
void Crop(Int_t x=0, Int_t y=0, UInt_t width=0, UInt_t height=0)
Crop an image.
Definition: TASImage.cxx:3416
TASImage::SetEditable
void SetEditable(Bool_t on=kTRUE)
Definition: TASImage.h:94
UInt_t
unsigned int UInt_t
Definition: RtypesCore.h:46
y
Double_t y[n]
Definition: legend1.C:17
TASImage::kZoom
@ kZoom
Definition: TASImage.h:34
TASImage::FillRectangle
void FillRectangle(const char *col=0, Int_t x=0, Int_t y=0, UInt_t width=0, UInt_t height=0)
Fill rectangle of size (width, height) at position (x,y) within the existing image with specified col...
Definition: TASImage.cxx:3815
TASImage::PaintImage
void PaintImage(Drawable_t wid, Int_t x, Int_t y, Int_t xsrc=0, Int_t ysrc=0, UInt_t wsrc=0, UInt_t hsrc=0, Option_t *opt="")
Draw image on the drawable wid (pixmap, window) at x,y position.
Definition: TASImage.cxx:1343
TASImage::GetVecArray
Double_t * GetVecArray()
Return a pointer to internal array[width x height] of double values [0,1].
Definition: TASImage.cxx:2480
TASImage::Image2Drawable
static void Image2Drawable(ASImage *im, Drawable_t wid, Int_t x, Int_t y, Int_t xsrc=0, Int_t ysrc=0, UInt_t wsrc=0, UInt_t hsrc=0, Option_t *opt="")
Draw asimage on drawable.
Definition: TASImage.cxx:1221
TASImage::operator=
TASImage & operator=(const TASImage &img)
Image assignment operator.
Definition: TASImage.cxx:319
TASImage::DrawWideLine
void DrawWideLine(UInt_t x1, UInt_t y1, UInt_t x2, UInt_t y2, UInt_t col, UInt_t thick)
Draw wide line.
Definition: TASImage.cxx:5667
TASImage::IsValid
Bool_t IsValid() const
Definition: TASImage.h:184
unsigned int
TASImage::fgInit
static Bool_t fgInit
global flag to init afterimage only once
Definition: TASImage.h:73
TASImage::DrawLine
void DrawLine(UInt_t x1, UInt_t y1, UInt_t x2, UInt_t y2, const char *col="#000000", UInt_t thick=1)
Draw a line.
Definition: TASImage.cxx:3911
TASImage::GetIconName
const char * GetIconName() const
Returns mime type name of object.
Definition: TASImage.h:99
TVectorT< Double_t >
TArrayL
Array of longs (32 or 64 bits per element).
Definition: TArrayL.h:27
TASImage::GetFillAreaSpans
void GetFillAreaSpans(UInt_t npt, TPoint *ppt, UInt_t *nspans, TPoint **firstPoint, UInt_t **firstWidth)
TText
Base class for several text objects.
Definition: TText.h:22
TPoint
Definition: TPoint.h:31
Double_t
double Double_t
Definition: RtypesCore.h:59
TASImage::fZoomOffX
UInt_t fZoomOffX
! X - offset for zooming in image pixels
Definition: TASImage.h:61
TASImage::Clone
TObject * Clone(const char *newname) const
Clone image.
Definition: TASImage.cxx:2789
TVirtualPad
TVirtualPad is an abstract base class for the Pad and Canvas classes.
Definition: TVirtualPad.h:51
TASImage::GetRgbaArray
UInt_t * GetRgbaArray()
Return a pointer to an array[width x height] of RGBA32 values.
Definition: TASImage.cxx:3621
TASImage::TypeFromMagicNumber
const char * TypeFromMagicNumber(const char *file)
Guess the file type from the first byte of file.
Definition: TASImage.cxx:397
TASImage::WriteImage
void WriteImage(const char *file, EImageFileTypes type=TImage::kUnknown)
Write image to specified file.
Definition: TASImage.cxx:649
TASImage::DrawSegments
void DrawSegments(UInt_t nseg, Segment_t *seg, const char *col="#000000", UInt_t thick=1)
Draw segments.
Definition: TASImage.cxx:4789
TASImage::TASImage
TASImage()
Default image constructor.
Definition: TASImage.cxx:222
TASImage::ReadImage
void ReadImage(const char *file, EImageFileTypes type=TImage::kUnknown)
Read specified image file.
Definition: TASImage.cxx:480
TASImage::GetWidth
UInt_t GetWidth() const
Return width of original image not of the displayed image.
Definition: TASImage.cxx:2150
file
Definition: file.py:1
TASImage::EndPaint
void EndPaint()
EndPaint does internal RLE compression of image data.
Definition: TASImage.cxx:3566
UChar_t
unsigned char UChar_t
Definition: RtypesCore.h:38
TASImage::fImage
ASImage * fImage
! pointer to image structure of original image
Definition: TASImage.h:57
TASImage::ExecuteEvent
void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Execute mouse events.
Definition: TASImage.cxx:1703
TObject
Mother of all ROOT objects.
Definition: TObject.h:37
TASImage::DrawDashLine
void DrawDashLine(UInt_t x1, UInt_t y1, UInt_t x2, UInt_t y2, UInt_t nDash, const char *pDash, const char *col="#000000", UInt_t thick=1)
Draw a dashed line.
Definition: TASImage.cxx:4625
ClassDef
#define ClassDef(name, id)
Definition: Rtypes.h:325
TASImage::GetImage
ASImage * GetImage() const
Definition: TASImage.h:186
TASImage::SetDefaults
void SetDefaults()
Set default parameters.
Definition: TASImage.cxx:195
TASImage::SetJpegDpi
Bool_t SetJpegDpi(const char *name, UInt_t dpi=72)
Set an image printing resolution in Dots Per Inch units.
Definition: TASImage.cxx:6785
name
char name[80]
Definition: TGX11.cxx:110
TASImage::SetImage
void SetImage(ASImage *image)
Definition: TASImage.h:187
TASImage::Mirror
void Mirror(Bool_t vert=kTRUE)
Mirror image in place.
Definition: TASImage.cxx:2120
TASImage::DrawCellArray
void DrawCellArray(Int_t x1, Int_t y1, Int_t x2, Int_t y2, Int_t nx, Int_t ny, UInt_t *ic)
Draw a cell array.
Definition: TASImage.cxx:5129
TASImage::MapFileTypes
void MapFileTypes(EImageFileTypes &type, UInt_t &astype, Bool_t toas=kTRUE)
Map file type to/from AfterImage types.
Definition: TASImage.cxx:864
TASImage::DrawVLine
void DrawVLine(UInt_t x, UInt_t y1, UInt_t y2, UInt_t col, UInt_t thick)
Draw a vertical line.
Definition: TASImage.cxx:3841
x2
static const double x2[5]
Definition: RooGaussKronrodIntegrator1D.cxx:364
TImagePalette
A class to define a conversion from pixel values to pixel color.
Definition: TAttImage.h:33
TASImage::SetTitle
void SetTitle(const char *title="")
Set a title for an image.
Definition: TASImage.cxx:6296
TASImage::kReadWriteVector
@ kReadWriteVector
Definition: TASImage.h:35
TASImage::fZoomUpdate
Int_t fZoomUpdate
! kZoom - new zooming required, kZoomOps - other ops in action, kNoZoom - no zooming or ops
Definition: TASImage.h:65
TASImage::SetImage
void SetImage(const Double_t *imageData, UInt_t width, UInt_t height, TImagePalette *palette=0)
Deletes the old image and creates a new image depending on the values of imageData.
Definition: TASImage.cxx:986
type
int type
Definition: TGX11.cxx:121
TASImage::fGrayImage
ASImage * fGrayImage
! gray image
Definition: TASImage.h:68
TArrayD
Array of doubles (64 bits per element).
Definition: TArrayD.h:27
TImage::EImageFileTypes
EImageFileTypes
Definition: TImage.h:36
TASImage::Scale
void Scale(UInt_t width, UInt_t height)
Scale the original image.
Definition: TASImage.cxx:1913
Segment_t
Definition: GuiTypes.h:350
TASImage::Pad
void Pad(const char *color="#00FFFFFF", UInt_t left=0, UInt_t right=0, UInt_t top=0, UInt_t bottom=0)
Enlarge image, padding it with specified color on each side in accordance with requested geometry.
Definition: TASImage.cxx:3367
TASImage::DrawDashVLine
void DrawDashVLine(UInt_t x, UInt_t y1, UInt_t y2, UInt_t nDash, const char *pDash, UInt_t col, UInt_t thick)
Draw a dashed vertical line.
Definition: TASImage.cxx:4226
TASImage::SetPaletteEnabled
void SetPaletteEnabled(Bool_t on=kTRUE)
Switch on/off the image palette.
Definition: TASImage.cxx:6712
TASImage::fScaledImage
TASImage * fScaledImage
! temporary scaled and zoomed image produced from original image
Definition: TASImage.h:58
TASImage::Blur
void Blur(Double_t hr=3, Double_t vr=3)
Perform Gaussian blur of the image (useful for drop shadows).
Definition: TASImage.cxx:2760
TImage::kPng
@ kPng
Definition: TImage.h:40
TASImage::fMaxValue
Double_t fMaxValue
! max value in image
Definition: TASImage.h:59
TASImage::CopyArea
void CopyArea(TImage *dst, Int_t xsrc, Int_t ysrc, UInt_t w, UInt_t h, Int_t xdst=0, Int_t ydst=0, Int_t gfunc=3, EColorChan chan=kAllChan)
Copy source region to the destination image.
Definition: TASImage.cxx:5015
TASImage::DrawHLine
void DrawHLine(UInt_t y, UInt_t x1, UInt_t x2, UInt_t col, UInt_t thick)
Draw an horizontal line.
Definition: TASImage.cxx:3876
TASImage::DrawText
void DrawText(Int_t x=0, Int_t y=0, const char *text="", Int_t size=12, const char *color=0, const char *font="fixed", EText3DType type=TImage::kPlain, const char *fore_file=0, Float_t angle=0)
Draw text of size (in pixels for TrueType fonts) at position (x, y) with color specified by hex strin...
Definition: TASImage.cxx:2580
TASImage::Vectorize
Double_t * Vectorize(UInt_t max_colors=256, UInt_t dither=4, Int_t opaque_threshold=1)
Reduce color-depth of an image and fills vector of "scientific data" [0...1].
Definition: TASImage.cxx:2835
TASImage::Paint
void Paint(Option_t *option="")
Paint image.
Definition: TASImage.cxx:1363
int
TASImage::CropPolygon
void CropPolygon(UInt_t npt, TPoint *ppt)
Crop a convex polygon.
Definition: TASImage.cxx:5407
TASImage::kNoZoom
@ kNoZoom
Definition: TASImage.h:34
TASImage::GetTitle
const char * GetTitle() const
Title is used to keep 32x32 xpm image's thumbnail.
Definition: TASImage.cxx:6278
TASImage::fgPlugList
static THashTable * fgPlugList
! hash table containing loaded plugins
Definition: TASImage.h:70
TASImage::GetScaledImage
TImage * GetScaledImage() const
Definition: TASImage.h:188