30 #ifndef _D_AA_IMAGE_VIEWER_HPP
31 #define _D_AA_IMAGE_VIEWER_HPP
33 #include "Gui/include/private/DImageViewer.hpp"
34 #include "Core/include/DTypes.h"
35 #include "Base/include/private/DImageTransform.hpp"
42 template <
class T>
class Image;
64 virtual bool isVisible();
65 virtual void setName(
const char* _name);
66 virtual void clearOverlay() { }
71 virtual void drawImage();
82 AaImageViewer<T>::AaImageViewer(Image<T> *im)
89 int AaImageViewer<T>::createContext()
91 context = aa_autoinit(&aa_defparams);
94 fprintf(stderr,
"Cannot initialize AA-lib. Sorry.\n");
101 AaImageViewer<T>::~AaImageViewer()
108 void AaImageViewer<T>::show()
114 void AaImageViewer<T>::hide()
122 void AaImageViewer<T>::drawImage()
129 double imW = this->image->getWidth();
130 double imH = this->image->getHeight();
131 double imR = imW / imH;
133 double scrW = aa_imgwidth(context);
134 double scrH = aa_imgheight(context);
135 double scrR = scrW / scrH;
141 w = imW * scrH / imH;
147 h = imH * scrW / imW;
149 w *= aa_imgheight(context) / aa_scrheight(context);
151 Image<T> tmpIm(w, h);
152 resize(*this->image, w, h, tmpIm);
154 unsigned char *data = aa_image(context);
155 typename Image<T>::lineType pixels = tmpIm.getPixels();
156 double coeff = double(numeric_limits<UINT8>::max()) / double(numeric_limits<T>::max());
158 for (
int j=0;j<scrH;j++)
159 for (
int i=0;i<scrW;i++,data++)
162 *data = (UINT8)(coeff *
double(*pixels++));
166 aa_render(context, &aa_defrenderparams, 0, 0, aa_scrwidth (context), aa_scrheight (context));
171 bool AaImageViewer<T>::isVisible()
173 return context!=NULL;
177 void AaImageViewer<T>::setName(
const char* _name)
AA (Ascii Art) image viewer.
Definition: DAAImageViewer.hpp:56
Main Image class.
Definition: DImage.hpp:57
Base image viewer.
Definition: DImageViewer.hpp:52