近日写一个相册上传软件时发现使用SetBitmapBits带出来的一个奇怪问题 。
手动旋转一个DIB的时候有些图片左转和右转反过来了,而使用GetDIBits取到DIB的高是一个正数,不是负的(负的表示Bits数据是topdown存放),最后使用CopyMemory直接写Bits,哈哈,问题修复。
后来看了下SetBitmapBits的MSDN,竟然说是一个16位Windows兼容函数,建议使用SetDIBits。不过SetDIBits参数太复杂了点,对DIB,还是直接Copy来得快些。
本文描述了一个在开发相册上传软件过程中遇到的问题:手动旋转DIB格式图片时方向出现错误。作者通过分析发现,问题根源在于使用SetBitmapBits函数处理图片数据的方式不正确。最终通过直接使用CopyMemory函数拷贝图片数据解决了这一问题。
近日写一个相册上传软件时发现使用SetBitmapBits带出来的一个奇怪问题 。
手动旋转一个DIB的时候有些图片左转和右转反过来了,而使用GetDIBits取到DIB的高是一个正数,不是负的(负的表示Bits数据是topdown存放),最后使用CopyMemory直接写Bits,哈哈,问题修复。
后来看了下SetBitmapBits的MSDN,竟然说是一个16位Windows兼容函数,建议使用SetDIBits。不过SetDIBits参数太复杂了点,对DIB,还是直接Copy来得快些。
678

被折叠的 条评论
为什么被折叠?