mirror of
https://github.com/creyD/intelliphoto.git
synced 2026-04-16 05:10:32 +02:00
history
This commit is contained in:
@@ -9,14 +9,14 @@ IntelliRasterImage::IntelliRasterImage(int width, int height, bool fastRendererO
|
|||||||
this->fastRenderering = fastRendererOn;
|
this->fastRenderering = fastRendererOn;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
IntelliRasterImage::IntelliRasterImage(const IntelliRasterImage& image)
|
IntelliRasterImage::Copy(const IntelliRasterImage& image)
|
||||||
: IntelliImage(image.getWidth(), image.getHeight(), image.isFastRendering()){
|
: IntelliImage(image.getWidth(), image.getHeight(), image.isFastRendering()){
|
||||||
this->TypeOfImage = ImageType::RASTERIMAGE;
|
this->TypeOfImage = ImageType::RASTERIMAGE;
|
||||||
IntelliRasterImage* raster = new IntelliRasterImage(imageData.width(), imageData.height(), this->fastRenderering);
|
IntelliRasterImage* raster = new IntelliRasterImage(imageData.width(), imageData.height(), this->fastRenderering);
|
||||||
raster->imageData.copy(0,0,image.getWidth(),image.getWidth());
|
raster->imageData.copy(0,0,image.getWidth(),image.getWidth());
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
IntelliRasterImage::~IntelliRasterImage(){
|
IntelliRasterImage::~IntelliRasterImage(){
|
||||||
|
|||||||
@@ -1,61 +0,0 @@
|
|||||||
#include "Image/IntelliRasterImage.h"
|
|
||||||
#include <QPainter>
|
|
||||||
#include <QRect>
|
|
||||||
#include <QDebug>
|
|
||||||
|
|
||||||
IntelliRasterImage::IntelliRasterImage(int width, int height, bool fastRendererOn)
|
|
||||||
: IntelliImage(width, height, fastRendererOn){
|
|
||||||
TypeOfImage = ImageType::RASTERIMAGE;
|
|
||||||
this->fastRenderering = fastRendererOn;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
IntelliRasterImage::Copy(const IntelliRasterImage& image)
|
|
||||||
: IntelliImage(image.getWidth(), image.getHeight(), image.isFastRendering()){
|
|
||||||
this->TypeOfImage = ImageType::RASTERIMAGE;
|
|
||||||
IntelliRasterImage* raster = new IntelliRasterImage(imageData.width(), imageData.height(), this->fastRenderering);
|
|
||||||
raster->imageData.copy(0,0,image.getWidth(),image.getWidth());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
IntelliRasterImage::~IntelliRasterImage(){
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
IntelliImage* IntelliRasterImage::getDeepCopy(){
|
|
||||||
IntelliRasterImage* raster = new IntelliRasterImage(imageData.width(), imageData.height(), this->fastRenderering);
|
|
||||||
raster->imageData.fill(Qt::transparent);
|
|
||||||
raster->TypeOfImage = 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;
|
|
||||||
}
|
|
||||||
@@ -26,7 +26,7 @@ public:
|
|||||||
*/
|
*/
|
||||||
IntelliRasterImage(int width, int height, bool fastRendererOn);
|
IntelliRasterImage(int width, int height, bool fastRendererOn);
|
||||||
|
|
||||||
//IntelliRasterImage(const IntelliRasterImage& image);
|
void copy(const IntelliRasterImage& image);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief An Destructor.
|
* \brief An Destructor.
|
||||||
|
|||||||
@@ -10,14 +10,12 @@ IntelliShapedImage::IntelliShapedImage(int width, int height, bool fastRendererO
|
|||||||
this->fastRenderering = fastRendererOn;
|
this->fastRenderering = fastRendererOn;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
IntelliShapedImage::Copy(const IntelliShapedImage& image)
|
||||||
IntelliShapedImage::IntelliShapedImage(const IntelliShapedImage& image)
|
|
||||||
: IntelliRasterImage(image.getWidth(), image.getHeight(), image.isFastRendering()){
|
: IntelliRasterImage(image.getWidth(), image.getHeight(), image.isFastRendering()){
|
||||||
this->TypeOfImage = ImageType::SHAPEDIMAGE;
|
this->TypeOfImage = ImageType::SHAPEDIMAGE;
|
||||||
IntelliShapedImage* shaped = new IntelliShapedImage(imageData.width(), imageData.height(), this->fastRenderering);
|
IntelliShapedImage* shaped = new IntelliShapedImage(imageData.width(), imageData.height(), this->fastRenderering);
|
||||||
shaped->imageData.copy(0,0,image.getWidth(),image.getWidth());
|
shaped->imageData.copy(0,0,image.getWidth(),image.getWidth());
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
IntelliShapedImage::~IntelliShapedImage(){
|
IntelliShapedImage::~IntelliShapedImage(){
|
||||||
|
|
||||||
|
|||||||
@@ -1,120 +0,0 @@
|
|||||||
#include "Image/IntelliShapedImage.h"
|
|
||||||
#include "IntelliHelper/IntelliTriangulation.h"
|
|
||||||
#include <QPainter>
|
|
||||||
#include <QRect>
|
|
||||||
#include <QDebug>
|
|
||||||
|
|
||||||
IntelliShapedImage::IntelliShapedImage(int width, int height, bool fastRendererOn)
|
|
||||||
: IntelliRasterImage(width, height, fastRendererOn){
|
|
||||||
TypeOfImage = ImageType::SHAPEDIMAGE;
|
|
||||||
this->fastRenderering = fastRendererOn;
|
|
||||||
}
|
|
||||||
|
|
||||||
IntelliShapedImage::Copy(const IntelliShapedImage& image)
|
|
||||||
: IntelliRasterImage(image.getWidth(), image.getHeight(), image.isFastRendering()){
|
|
||||||
this->TypeOfImage = ImageType::SHAPEDIMAGE;
|
|
||||||
IntelliShapedImage* shaped = new IntelliShapedImage(imageData.width(), imageData.height(), this->fastRenderering);
|
|
||||||
shaped->imageData.copy(0,0,image.getWidth(),image.getWidth());
|
|
||||||
}
|
|
||||||
|
|
||||||
IntelliShapedImage::~IntelliShapedImage(){
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
QImage IntelliShapedImage::getDisplayable(int alpha){
|
|
||||||
return getDisplayable(imageData.size(),alpha);
|
|
||||||
}
|
|
||||||
|
|
||||||
IntelliImage* IntelliShapedImage::getDeepCopy(){
|
|
||||||
IntelliShapedImage* shaped = new IntelliShapedImage(imageData.width(), imageData.height(), this->fastRenderering);
|
|
||||||
shaped->setPolygon(this->polygonData);
|
|
||||||
shaped->imageData.fill(Qt::transparent);
|
|
||||||
shaped->TypeOfImage = ImageType::SHAPEDIMAGE;
|
|
||||||
return shaped;
|
|
||||||
}
|
|
||||||
|
|
||||||
void IntelliShapedImage::calculateVisiblity(){
|
|
||||||
if(polygonData.size()<2) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if(fastRenderering) {
|
|
||||||
this->imageData = imageData.convertToFormat(QImage::Format_ARGB32);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(polygonData.size()<=2) {
|
|
||||||
QColor clr;
|
|
||||||
for(int y = 0; y<imageData.height(); y++) {
|
|
||||||
for(int x = 0; x<imageData.width(); x++) {
|
|
||||||
clr = imageData.pixel(x,y);
|
|
||||||
clr.setAlpha(255);
|
|
||||||
imageData.setPixelColor(x,y,clr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(fastRenderering) {
|
|
||||||
this->imageData = this->imageData.convertToFormat(QImage::Format_Indexed8);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
QColor clr;
|
|
||||||
for(int y = 0; y<imageData.height(); y++) {
|
|
||||||
for(int x = 0; x<imageData.width(); x++) {
|
|
||||||
QPoint ptr(x,y);
|
|
||||||
clr = imageData.pixelColor(x,y);
|
|
||||||
bool isInPolygon = IntelliTriangulation::isInPolygon(triangles, ptr);
|
|
||||||
if(isInPolygon) {
|
|
||||||
clr.setAlpha(std::min(255, clr.alpha()));
|
|
||||||
}else{
|
|
||||||
clr.setAlpha(0);
|
|
||||||
}
|
|
||||||
imageData.setPixelColor(x,y,clr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(fastRenderering) {
|
|
||||||
this->imageData = this->imageData.convertToFormat(QImage::Format_Indexed8);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
QImage IntelliShapedImage::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 IntelliShapedImage::setPolygon(const std::vector<QPoint>& polygonData){
|
|
||||||
if(polygonData.size()<3) {
|
|
||||||
this->polygonData.clear();
|
|
||||||
}else{
|
|
||||||
this->polygonData.clear();
|
|
||||||
for(auto element:polygonData) {
|
|
||||||
this->polygonData.push_back(QPoint(element.x(), element.y()));
|
|
||||||
}
|
|
||||||
triangles = IntelliTriangulation::calculateTriangles(polygonData);
|
|
||||||
if(fastRenderering) {
|
|
||||||
imageData = imageData.convertToFormat(QImage::Format_ARGB32);
|
|
||||||
}
|
|
||||||
for(int y = 0; y<imageData.height(); y++) {
|
|
||||||
for(int x = 0; x<imageData.width(); x++) {
|
|
||||||
QColor clr = imageData.pixelColor(x,y);
|
|
||||||
clr.setAlpha(255);
|
|
||||||
imageData.setPixelColor(x,y,clr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(fastRenderering) {
|
|
||||||
imageData = imageData.convertToFormat(QImage::Format_Indexed8);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
calculateVisiblity();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
@@ -38,7 +38,7 @@ public:
|
|||||||
*/
|
*/
|
||||||
IntelliShapedImage(int width, int height, bool fastRendererOn);
|
IntelliShapedImage(int width, int height, bool fastRendererOn);
|
||||||
|
|
||||||
//IntelliShapedImage(const IntelliShapedImage& image);
|
void copy(const IntelliShapedImage& image);
|
||||||
/*!
|
/*!
|
||||||
* \brief An Destructor.
|
* \brief An Destructor.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -2,11 +2,16 @@
|
|||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
int main(int argc, char*argv[]){
|
int main(int argc, char*argv[]){
|
||||||
// The main application
|
// The main application
|
||||||
QApplication app(argc, argv);
|
QApplication app(argc, argv);
|
||||||
|
|
||||||
|
std::fstream file("test.txt");
|
||||||
|
file << "Hallo welt";
|
||||||
|
file.close();
|
||||||
|
|
||||||
// Create and open the main window
|
// Create and open the main window
|
||||||
IntelliPhotoGui window;
|
IntelliPhotoGui window;
|
||||||
window.show();
|
window.show();
|
||||||
|
|||||||
15
src/main.cpp.autosave
Normal file
15
src/main.cpp.autosave
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#include "GUI/IntelliPhotoGui.h"
|
||||||
|
#include <QApplication>
|
||||||
|
#include <QDebug>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
int main(int argc, char*argv[]){
|
||||||
|
// The main application
|
||||||
|
QApplication app(argc, argv);
|
||||||
|
|
||||||
|
// Create and open the main window
|
||||||
|
IntelliPhotoGui window;
|
||||||
|
window.show();
|
||||||
|
|
||||||
|
return app.exec();
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user