QT中将QString写入到文件中

今天才发现,原来要把QString写入到文件中要用到Utf8()这个函数,记一下

https://www.cnblogs.com/flowingwind/p/8336159.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在QT中将BMP的像素值写入到txt文件的示例代码: ```cpp #include <QCoreApplication> #include <QFile> #include <QDataStream> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QFile file("image.txt"); if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) return 0; QDataStream out(&file); out.setByteOrder(QDataStream::LittleEndian); // BMP文件使用小端字节序 // 读取BMP文件头 qint16 bfType; qint32 bfSize; qint16 bfReserved1; qint16 bfReserved2; qint32 bfOffBits; out >> bfType >> bfSize >> bfReserved1 >> bfReserved2 >> bfOffBits; // 读取BMP像素数据 qint32 biSize; qint32 biWidth; qint32 biHeight; qint16 biPlanes; qint16 biBitCount; qint32 biCompression; qint32 biSizeImage; qint32 biXPelsPerMeter; qint32 biYPelsPerMeter; qint32 biClrUsed; qint32 biClrImportant; out >> biSize >> biWidth >> biHeight >> biPlanes >> biBitCount >> biCompression >> biSizeImage >> biXPelsPerMeter >> biYPelsPerMeter >> biClrUsed >> biClrImportant; // 根据像素深度读取BMP像素数据 int pixelBytes = biBitCount / 8; char* pixelData = new char[biSizeImage]; out.readRawData(pixelData, biSizeImage); // 将像素值写入txt文件 for (int y = 0; y < biHeight; y++) { for (int x = 0; x < biWidth; x++) { int index = y * biWidth + x; int b = *(pixelData + index * pixelBytes); int g = *(pixelData + index * pixelBytes + 1); int r = *(pixelData + index * pixelBytes + 2); QString pixel = QString("%1 %2 %3\n").arg(r).arg(g).arg(b); file.write(pixel.toUtf8()); } } file.close(); delete[] pixelData; return a.exec(); } ``` 这段代码假设BMP文件使用小端字节序,并且像素深度为24位。如果你需要处理其他类型的BMP文件,你需要进行适当的修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值