void img2pad() { // Display image in canvas and pad. //Author: valeriy Onuchin TImage *img = TImage::Open("rose512.jpg"); if (!img) { printf("Could not create an image... exit\n"); return; } img->SetConstRatio(kFALSE); img->Draw("N"); TCanvas *c = gROOT->GetListOfCanvases()->FindObject("rose512jpg"); c->SetFixedAspectRatio(); TCanvas *c = new TCanvas("roses", "roses", 800, 800); img->Draw("T100,100,yellow"); //img->Draw("T100,100,#556655"); //img->Draw("T100,100"); TImage *i1 = TImage::Open("rose512.jpg"); i1->SetConstRatio(kFALSE); i1->Flip(90); TImage *i2 = TImage::Open("rose512.jpg"); i2->SetConstRatio(kFALSE); i2->Flip(180); TImage *i3 = TImage::Open("rose512.jpg"); i3->SetConstRatio(kFALSE); i3->Flip(270); TImage *i4 = TImage::Open("rose512.jpg"); i4->SetConstRatio(kFALSE); i4->Mirror(kTRUE); float d = 0.40; TPad *p1 = new TPad("i1", "i1", 0.05, 0.55, 0.05+d*i1->GetWidth()/i1->GetHeight(), 0.95); TPad *p2 = new TPad("i2", "i2", 0.55, 0.55, 0.95, 0.55+d*i2->GetHeight()/i2->GetWidth()); TPad *p3 = new TPad("i3", "i3", 0.55, 0.05, 0.55+d*i3->GetWidth()/i3->GetHeight(), 0.45); TPad *p4 = new TPad("i4", "i4", 0.05, 0.05, 0.45, 0.05+d*i4->GetHeight()/i4->GetWidth()); p1->Draw(); p1->cd(); i1->Draw(); c->cd(); p2->Draw(); p2->cd(); i2->Draw(); c->cd(); p3->Draw(); p3->cd(); i3->Draw(); c->cd(); p4->Draw(); p4->cd(); i4->Draw(); c->cd(); }
void img2pad() { TImage *img = TImage::Open("$ROOTSYS/tutorials/image/rose512.jpg"); if (!img) { printf("Could not create an image... exit\n"); return; } img->SetConstRatio(kFALSE); img->Draw("N"); TCanvas *c = (TCanvas *)gROOT->GetListOfCanvases()->FindObject("rose512jpg"); c->SetFixedAspectRatio(); TCanvas *c1 = new TCanvas("roses", "roses", 800, 800); img->Draw("T100,100,#ffff00"); /*img->Draw("T100,100,#556655");*/ /*img->Draw("T100,100");*/ TImage *i1 = TImage::Open("$ROOTSYS/tutorials/image/rose512.jpg"); i1->SetConstRatio(kFALSE); i1->Flip(90); TImage *i2 = TImage::Open("$ROOTSYS/tutorials/image/rose512.jpg"); i2->SetConstRatio(kFALSE); i2->Flip(180); TImage *i3 = TImage::Open("$ROOTSYS/tutorials/image/rose512.jpg"); i3->SetConstRatio(kFALSE); i3->Flip(270); TImage *i4 = TImage::Open("$ROOTSYS/tutorials/image/rose512.jpg"); i4->SetConstRatio(kFALSE); i4->Mirror(kTRUE); float d = 0.40; TPad *p1 = new TPad("i1", "i1", 0.05, 0.55, 0.05+d*i1->GetWidth()/i1->GetHeight(), 0.95); TPad *p2 = new TPad("i2", "i2", 0.55, 0.55, 0.95, 0.55+d*i2->GetHeight()/i2->GetWidth()); TPad *p3 = new TPad("i3", "i3", 0.55, 0.05, 0.55+d*i3->GetWidth()/i3->GetHeight(), 0.45); TPad *p4 = new TPad("i4", "i4", 0.05, 0.05, 0.45, 0.05+d*i4->GetHeight()/i4->GetWidth()); p1->Draw(); p1->cd(); i1->Draw(); c1->cd(); p2->Draw(); p2->cd(); i2->Draw(); c1->cd(); p3->Draw(); p3->cd(); i3->Draw(); c1->cd(); p4->Draw(); p4->cd(); i4->Draw(); c1->cd(); }
void plot_logo( Float_t v_scale = 1.0, Float_t skew = 1.0 ) { TImage *img = findImage("tmva_logo.gif"); if (!img) { cout << "+++ Could not open image tmva_logo.gif" << endl; return; } img->SetConstRatio(kFALSE); UInt_t h_ = img->GetHeight(); UInt_t w_ = img->GetWidth(); Float_t r = w_/h_; gPad->Update(); Float_t rpad = Double_t(gPad->VtoAbsPixel(0) - gPad->VtoAbsPixel(1))/(gPad->UtoAbsPixel(1) - gPad->UtoAbsPixel(0)); r *= rpad; Float_t d = 0.055; // absolute coordinates Float_t x1R = 1 - gStyle->GetPadRightMargin(); Float_t y1B = 1 - gStyle->GetPadTopMargin()+.01; // we like the logo to sit a bit above the histo Float_t x1L = x1R - d*r/skew; Float_t y1T = y1B + d*v_scale*skew; if (y1T>0.99) y1T = 0.99; TPad *p1 = new TPad("imgpad", "imgpad", x1L, y1B, x1R, y1T ); p1->SetRightMargin(0); p1->SetBottomMargin(0); p1->SetLeftMargin(0); p1->SetTopMargin(0); p1->Draw(); Int_t xSizeInPixel = p1->UtoAbsPixel(1) - p1->UtoAbsPixel(0); Int_t ySizeInPixel = p1->VtoAbsPixel(0) - p1->VtoAbsPixel(1); if (xSizeInPixel<=25 || ySizeInPixel<=25) { delete p1; return; // ROOT doesn't draw smaller than this } p1->cd(); img->Draw(); }
void draw_activation(TCanvas* c, Double_t cx, Double_t cy, Double_t radx, Double_t rady, Int_t whichActivation) { TImage *activation = NULL; switch (whichActivation) { case 0: activation = TImage::Open("sigmoid-small.png"); break; case 1: activation = TImage::Open("line-small.png"); break; default: cout << "Activation index " << whichActivation << " is not known." << endl; cout << "You messed up or you need to modify network.C to introduce a new " << "activation function (and image) corresponding to this index" << endl; } if (activation == NULL) { cout << "Could not create an image... exit" << endl; return; } activation->SetConstRatio(kFALSE); radx *= 0.7; rady *= 0.7; TString name = Form("activation%f%f", cx, cy); TPad* p = new TPad(name+"", name+"", cx-radx, cy-rady, cx+radx, cy+rady); p->Draw(); p->cd(); activation->Draw(); c->cd(); }
void rose_image() { // Display image in a new canvas and pad. TImage *img = TImage::Open("rose512.jpg"); if (!img) { printf("Could not create an image... exit\n"); return; } img->SetConstRatio(0); img->SetImageQuality(TAttImage::kImgBest); TString fp = gEnv->GetValue("Root.TTFontPath", ""); TString bc = fp + "/BlackChancery.ttf"; TString ar = fp + "/arial.ttf"; // draw text over image with funny font img->DrawText(120, 160, "Hello World!", 32, gROOT->GetColor(4)->AsHexString(), bc, TImage::kShadeBelow); // draw text over image with foreground specified by pixmap img->DrawText(250, 350, "goodbye cruel world ...", 24, 0, ar, TImage::kPlain, "fore.xpm"); TImage *img2 = TImage::Open("mditestbg.xpm"); // tile image img2->Tile(img->GetWidth(), img->GetHeight()); c1 = new TCanvas("rose512", "examples of image manipulations", 760, 900); c1->Divide(2, 3); c1->cd(1); img->Draw("xxx"); img->SetEditable(kTRUE); c1->cd(2); // averaging with mditestbg.xpm image TImage *img3 = (TImage*)img->Clone("img3"); img3->Merge(img2, "allanon"); img3->Draw(); // contrasting (tint with itself) c1->cd(3); TImage *img4 = (TImage*)img->Clone("img4"); img4->Merge(img4, "tint"); // draw filled rectangle with magenta color img4->FillRectangle("#FF00FF", 20, 220, 40, 40); // Render multipoint alpha-blended gradient (R->G->B) img4->Gradient(0, "#FF0000 #00FF00 #220000FF", 0, 50, 50, 100, 100); // draw semi-transparent 3D button img4->Bevel(300, 20, 160, 40, "#ffffffff", "#fe000000", 3, 0); img4->DrawLine(10, 100, 100, 10, "#0000ff", 4); img4->Draw(); // vectorize image. Reduce palette to 256 colors c1->cd(4); TImage *img5 = (TImage*)img->Clone("img5"); img5->Vectorize(256); img5->Draw(); // quantization of the image c1->cd(5); TImage *img6 = (TImage*)img->Clone("img6"); TImagePalette *pal = (TImagePalette *)&img5->GetPalette(); TArrayD *arr = img6->GetArray(50, 40, pal); img6->SetImage(arr->GetArray(), 50, 40, pal); img6->Draw(); // HSV adjustment (convert red to yellow) c1->cd(6); TImage *img7 = (TImage*)img->Clone("img7"); img7->HSV(0, 40, 40); img7->Draw(); }