#include"Image/IntelliImage.h" #include #include IntelliImage::IntelliImage(int weight, int height) :imageData(QSize(weight, height), QImage::Format_ARGB32){ imageData.fill(QColor(255,255,255,255)); } IntelliImage::~IntelliImage(){ } bool IntelliImage::loadImage(const QString &fileName){ // Holds the image QImage loadedImage; // If the image wasn't loaded leave this function if (!loadedImage.load(fileName)) return false; loadedImage =loadedImage.scaled(imageData.size(),Qt::IgnoreAspectRatio); imageData= loadedImage.convertToFormat(QImage::Format_ARGB32); return true; } void IntelliImage::resizeImage(QImage *image, const QSize &newSize){ // Check if we need to redraw the image if (image->size() == newSize) return; // Create a new image to display and fill it with white QImage newImage(newSize, QImage::Format_ARGB32); newImage.fill(qRgb(255, 255, 255)); // Draw the image QPainter painter(&newImage); painter.drawImage(QPoint(0, 0), *image); *image = newImage; } void IntelliImage::drawPixel(const QPoint &p1, const QColor& color){ // Used to draw on the widget QPainter painter(&imageData); // Set the current settings for the pen painter.setPen(QPen(color, 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)); // Draw a line from the last registered point to the current painter.drawPoint(p1); // Call to update the rectangular space where we drew //update(QRect(p1, p2)); } void IntelliImage::drawLine(const QPoint &p1, const QPoint& p2, const QColor& color, const int& penWidth){ // Used to draw on the widget QPainter painter(&imageData); // Set the current settings for the pen painter.setPen(QPen(color, penWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)); // Draw a line from the last registered point to the current painter.drawLine(p1, p2); } void IntelliImage::floodFill(const QColor& color){ imageData.fill(color); } int IntelliImage::x(){ return imageData.size().width(); } int IntelliImage::y(){ return imageData.size().height(); }