【Qt】解决GDAL直接读取数据到QImage导致图像歪斜的问题

QRect intersect_rect;
....
QImage img(intersect_rect.size(), QImage::Format_RGB888);
uchar *pImageData = (unsigned char *)img.constBits();
int img_width = intersect_rect.width();
int img_height = intersect_rect.height();// QImage每行是按照sizeof(int)对齐的,如果在RasterIO时不指定最后一个参数,即行字节数,则图像会歪斜。
int qimg_line_space = ceil((nRastercount * img_width) * 1.0 / sizeof(int)) * sizeof(int);
GDALRasterBand* pBand = m_poDataset->GetRasterBand(i);
pBand->RasterIO(GF_Read,intersect_rect.x(), intersect_rect.y(),sub_img_width, sub_img_height,pImageOffset,sub_img_width, sub_img_height,GDT_Byte,nRastercount,qimg_line_space); // 最后一个参数为0,会歪斜

原因是:QImage每行是按照sizeof(int)对齐的,如果在RasterIO时不明确指定最后一个参数,即行字节数,则图像会歪斜。

歪斜效果:
在这里插入图片描述
纠正后效果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高斯课堂数电讲义笔记_【法考经验贴】40岁三战主观题127分!他的笔记学习法助他逆袭!...

这位学员在考证界算是“高龄学员”,高分过关依赖于他的努力和正确的学习方法;本文中他有重点介绍自己是如何做笔记的,非常值得大家学习借鉴!一、个人概况:三战法考我正值不惑之年,是一名在职基层人民警察&a…

【转】持续交付和DevOps的前世今生

作者/分享人:乔梁,20年IT老兵,腾讯公司高级管理顾问,敏捷和精益开发专家,持续交付领域先行者。曾就职于百度,国内多个知名互联网公司的企业教练。 历年QCon技术大会的讲师和专题出品人。 这是一个新概念风起…

关联规则挖掘算法_基于Apriori关联规则的协同过滤算法

Apriori 算法apriori关联规则算法的原理设计较为简单,著名的“啤酒和尿布”说的就是Apriori算法,通俗来讲apriori旨在寻找频繁项集,以帮助商家将消费者有可能一起搭配购买的物品放置在同一个地方,提高消费者的购物效率和良好的购物…

【转】RabbitMQ六种队列模式-1.简单队列模式

前言 RabbitMQ六种队列模式-简单队列 [本文]RabbitMQ六种队列模式-工作队列RabbitMQ六种队列模式-发布订阅RabbitMQ六种队列模式-路由模式RabbitMQ六种队列模式-主题模式 在官网的教程中,描述了如上六类工作队列模式: 简单队列模式:最简单的…

【转】RabbitMQ六种队列模式-2.工作队列模式

前言 RabbitMQ六种队列模式-简单队列RabbitMQ六种队列模式-工作队列 [本文]RabbitMQ六种队列模式-发布订阅RabbitMQ六种队列模式-路由模式RabbitMQ六种队列模式-主题模式 上文我们了解了 RabbitMQ 六种队列模式中的简单队列,代码也是非常的简单,比较容易…

redis 哨兵模式 cluster模式区别_Redis哨兵(Sentinel)模式快速入门

当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。 所以更多时候,我们优先考虑哨兵(sentinel) 模式。Redis sentinel是Redis高可用实现方案&#xff…

IOS开发入门笔记

IB:IB是指Interface Builder,如IBAction,IBOutlet。IBOutlet和IBAction是什么?IBOutlet:中文翻译应该是:插座,连接点(书上写的是出口)。autorelease相当于Qt中的deleteLa…

【转】RabbitMQ六种队列模式-3.发布订阅模式

前言 RabbitMQ六种队列模式-简单队列RabbitMQ六种队列模式-工作队列RabbitMQ六种队列模式-发布订阅 [本文]RabbitMQ六种队列模式-路由模式RabbitMQ六种队列模式-主题模式 上文的工作队列模式是直接在生产者与消费者里声明好一个队列,这种情况下消息只会对应同类型的…

组建一个局域网一般会用到哪些设备_路由器和交换机的区别是什么?在实际使用中有哪些不同...

电工之家:www.dgzj.com QQ群:2179090关注电工之家官方微信公众号“电工之家”,收获更多经验知识。其实关于路由器和交换机确实有很多人容易混淆,包括猫MOdem,我最初就认为猫就是路由器,现在回想起来真的傻…

【转】RabbitMQ六种队列模式-4.路由模式

前言 RabbitMQ六种队列模式-简单队列RabbitMQ六种队列模式-工作队列RabbitMQ六种队列模式-发布订阅RabbitMQ六种队列模式-路由模式 [本文]RabbitMQ六种队列模式-主题模式 本文带大家了解 RabbitMQ 队列模式中的路由模式。 其实只要看过上篇发布模式后,相信路由模式…

百度二年级手工机器人_让父母少弯腰的家务神器——追觅扫拖机器人慧目F9评测...

大家好,我是CC。父母都已过了花甲之年,退休在家本应是享清福的时候,为了照顾双上班族的我,平时承担了接儿子放学和给我蹭晚餐的任务,操劳不少。眼看着他们一点点老去,总想也为他们做点什么,所以…

【转】RabbitMQ六种队列模式-5.主题模式

前言 RabbitMQ六种队列模式-简单队列RabbitMQ六种队列模式-工作队列RabbitMQ六种队列模式-发布订阅RabbitMQ六种队列模式-路由模式RabbitMQ六种队列模式-主题模式 [本文] 从前面的几篇我们依次经历了 exchange 模式从 fanout > direct 的转变过程,在 fanout 时&a…

javase哪部分最难_高中物理哪部分最难?这里有答案和方法!一定要收藏

高中物理最难的部分是什么?对于大多数同学来说,电粒子在电磁场中的运动、动力学分析以及电学实验比较难搞定,看看下面的方法,希望对你有所帮助。从应试而言,应是带电粒子在电磁场中的运动(力,运动轨迹,几何…

【转】分布式websocket服务器

最近在开发一个游戏的客服系统,同一时间咨询问题的玩家多,为了保证服务器高可用,需要利用分布式,另外服务器宕机还需要玩家无感知重连,最关键的一点是如何实现服务器的高扩展性,即性能不足时,如…

【Rational Rose使用笔记】协作图

例题 用例题亲自画一下是最好的。 例题出处:掌握在Rational Rose中绘制协作图(交互图)的操作方法 其他参考文章: UML–协作图详解UML中创建对象的方法:Rational Rose建立对象图 笔记 以下是总结的一些笔记&#x…

【Rational Rose使用笔记】用例图

一 先找例题: 掌握运用Rose工具绘制用例图的基本操作 再学习: UML建模——用例图(Use Case Diagram) 二 下面是笔记: 了解几种关系:依赖、关联、泛化、包含、扩展。 如何区别依赖、关联? 依…

sqlserver获取当前时间_c#获取并显示当前日期时间

主要使用ToLongDateString、ToShortDateString、ToLongTimeString、ToShortTimeString、DayOfWeek等获取日期、时间、星期等数据。MM 两位数月份mm 两位数分钟HH 两位小时,24小时制hh 两位小时,12小时制string br ""; string a1 D…

【考研计算机】AOE关键路径

介绍 数据结构AOE网 计算题专题:关键路径法(CPM) 需要注意的点: 最重要的点,以下图为例: 一个活动有多个入口,这是表示此活动必须在前置的多个入口都完成时,才能开始。 即,开始条件 入口1 &…

【转】.NET程序内存分析工具CLRProfiler的使用

大家都知道.net有一套自己的内存(垃圾)回收机制,除非有一些数据(方法)长期占有内存不随着垃圾回收功能而释放内存,这样就造成了我们经常说的内存泄露、内存持续增长得不到释放等问题导致APS.net网站或者C/S…