基于QT库实现的BMP图片处理工具
(源码在文末)
大学小学期的一次作业,要求基于c++语言和QT库做一个BMP图片的处理工具
我寻思这还不是洒洒水,qt库里的算法函数还不够我吃的?
马上开锤!一套操作下来猛如虎
不就是显示一张图片嘛,QImage类就搞掂啦
不就是修改图片像素嘛嘛,QImage类方法搞定啦
不就是。。。
卧槽!?没这么简单?还要自己造轮子?
搞了半天原来还甜美的需要自己搞个Image类出来,实在是失策,这就是不审题的后果吗
还是一步一步来吧
用一个自己写的Image类
class Image
{
public:
BMPFILEHEADER filehead; // 文件头
BITMAPINFOHEADER infohead; // 信息头
Image();
Image(int h, int w);
Image(int h, int w, DATA val);
Image(const Image& m);
DATA** GetData() const{ return this->data; };
int GetHeight() const{ return this->height; };
int GetWidth() const{ return this->width; };
void ReadBMP(const char* filename);
void WriteBMP(const char* filename);
void Flip(bool mode);
void Add(double delta);
void Cut(int x1, int y1, int x2, int y2);
void Rotate(int degree);
void Cat(Image& m, int code);
void Cold(double delta);
void Warm(double delta);
QImage* toQImage(Image n);
private:
int height;
int width;
DATA** data;
};
显示用QT完成嘛,简单!
把图片读到一个指定路径,然后再用QPixmap显示不就完事了吗?
什么?!对图片的操作仅仅限于在内存中?我TM。。。
这该如何是好?
我想我可以用QPainter把图片像素一个个在画板上画出来
但效率也太低了。。
于是我决定
把我的Image类转换成 QImage类再显示
而事实证明效果拔群!!
接下来就是按钮,界面巴拉巴拉的
一个简单的工具就这样完成了
。
。
。
。
然而结果还是被说做得过于简单,缺乏创新性。。
我寻思这不造轮子嘛。。咋还整什么花里胡哨的。。
而且还不给我用QT里的方法,复杂的我也造不出来呀。。
(小声抱怨)
我不管了
反正我™的尽力了
收工饮茶~
源码:
https://gitee.com/gaga-doesnt-eat-meat/qt-image-editing