mirror of
https://github.com/creyD/intelliphoto.git
synced 2026-04-12 19:40:28 +02:00
52 lines
1.4 KiB
C++
52 lines
1.4 KiB
C++
#include "Image/IntelliRasterImage.h"
|
|
#include <QPainter>
|
|
#include <QRect>
|
|
#include <QDebug>
|
|
|
|
IntelliRasterImage::IntelliRasterImage(int width, int height, bool fastRendererOn)
|
|
: IntelliImage(width, height, fastRendererOn){
|
|
TypeOfImage = IntelliImage::ImageType::RASTERIMAGE;
|
|
this->fastRenderering = fastRendererOn;
|
|
}
|
|
|
|
IntelliRasterImage::~IntelliRasterImage(){
|
|
|
|
}
|
|
|
|
IntelliImage* IntelliRasterImage::getDeepCopy(){
|
|
IntelliRasterImage* raster = new IntelliRasterImage(imageData.width(), imageData.height(), false);
|
|
raster->imageData.fill(Qt::transparent);
|
|
raster->TypeOfImage = IntelliImage::ImageType::RASTERIMAGE;
|
|
return raster;
|
|
}
|
|
|
|
void IntelliRasterImage::calculateVisiblity(){
|
|
// not used in raster image
|
|
}
|
|
|
|
QImage IntelliRasterImage::getDisplayable(int alpha){
|
|
return getDisplayable(imageData.size(), alpha);
|
|
}
|
|
|
|
QImage IntelliRasterImage::getDisplayable(const QSize& displaySize, int alpha){
|
|
QImage copy = imageData;
|
|
if(fastRenderering) {
|
|
copy = copy.convertToFormat(QImage::Format_ARGB32);
|
|
}
|
|
for(int y = 0; y<copy.height(); y++) {
|
|
for(int x = 0; x<copy.width(); x++) {
|
|
QColor clr = copy.pixelColor(x,y);
|
|
clr.setAlpha(std::min(alpha, clr.alpha()));
|
|
copy.setPixelColor(x,y, clr);
|
|
}
|
|
}
|
|
if(fastRenderering) {
|
|
copy = copy.convertToFormat(QImage::Format_Indexed8);
|
|
}
|
|
return copy.scaled(displaySize,Qt::IgnoreAspectRatio);
|
|
}
|
|
|
|
void IntelliRasterImage::setPolygon(const std::vector<QPoint>& polygonData){
|
|
return;
|
|
}
|