/
//图像处理
void CGeoPhotoProc::ReversePicture(CString strPicName)
{
 CImage image;
 if(image.Load(strPicName)==E_FAIL)
  return ;
 //图像每一行的字节数 
 int nRowBytes = image.GetPitch(); 
 int nWidth = image.GetWidth(); 
 int nHeight = image.GetHeight();

//每个像素所占的字节数
 int nClrCount = image.GetBPP() / 8; 
 LPBYTE p;
 //上下对调
 for(int index = 0; index < nClrCount; index++) 
 { 
  LPBYTE pOrg=p = (LPBYTE)image.GetBits(); 
  pOrg += (nHeight-1)*nRowBytes;
  for(int i = 0; i < nHeight/2; i++) 
  {
   for(int j = 0; j < nWidth; j++) 
   {
    BYTE nB=p[j*nClrCount + index]; 
    p[j*nClrCount + index]=pOrg[j*nClrCount + index] ;
    pOrg[j*nClrCount + index] = nB; 
   } 
   //如果nRowBytes>0  则从开始到结尾 
   //如果nRowBytes<0, 则从结尾到开始 
   p += nRowBytes;
   pOrg-=nRowBytes;
  } 
 }

image.Save(strPicName); 
}

//左右对调
void CGeoPhotoProc::SymmetryPicture(CString strPicName)
{
 CImage image;
 if(image.Load(strPicName)==E_FAIL)
  return ;
 //图像每一行的字节数 
 int nRowBytes = image.GetPitch(); 
 int nWidth = image.GetWidth(); 
 int nHeight = image.GetHeight();

//每个像素所占的字节数
 int nClrCount = image.GetBPP() / 8; 
 LPBYTE p;
 //左右对调
 for(int index = 0; index < nClrCount; index++) 
 { 
  p = (LPBYTE)image.GetBits(); 
  for(int i = 0; i < nHeight; i++) 
  { 
   for(int j = 0; j < nWidth/2; j++) 
   {
    BYTE nB=p[(nWidth-1-j)*nClrCount + index]; 
    p[(nWidth-1-j)*nClrCount + index]=p[j*nClrCount + index] ;
    p[j*nClrCount + index] = nB; 
   } 
   //如果nRowBytes>0  则从开始到结尾 
   //如果nRowBytes<0, 则从结尾到开始 
   p += nRowBytes;  
  } 
 }
 image.Save(strPicName); 
}

图形上下,左右对称旋转代码相关推荐

  1. QT OpenGL图形放大缩小旋转移动

    由于要在OpenGL中实现放大缩小旋转和移动的效果,故要重写鼠标事件 放大缩小 重写void wheelEvent(QWheelEvent *event)函数 void zScale(float dz ...

  2. cad块炸开软件_CAD软件中将CAD图形定义为旋转动态块的操作技巧

    在我们使用浩辰CAD软件绘制CAD图纸的过程中,如果频繁的创建图块,会浪费我们的时间,为了提高绘图速率,可以将CAD图纸中的图形定义为动态块,那怎么在CAD软件中将CAD图形定义为旋转动态块呢?接下来 ...

  3. 图形推理1000题及答案解析_判断推理图形推理——区分旋转翻转

    点击上面蓝字关注我们 区分旋转翻转 时针法用来判定两个图形是通过旋转相互得到,还是通过翻转相互得到的. 时针法:在原图形中选取三个点,在待判定图形上标注同样三个点,依同样的次序通过这三个点的路径可以确 ...

  4. 记录一下:在菜单上添加自绘图形的例子(VB6代码)

    不复杂,记录在这里以备用 效果图: 代码如下: Option Explicit '在菜单上添加自绘图形的例子 '窗体上添加一个Picture1,一个Command1,一个至少带一个下级菜单的顶级菜单. ...

  5. 翻转和旋转计算机教学,小学信息技术(上册)第15课图形翻转与旋转教学案例...

    小学信息技术(上册)第15课图形翻转与旋转教学案例 苏州市湄长小学 方艳 1. 教学背景 1.1.教材分析 <图形的翻转与旋转>是江苏省小学信息技术教材第15课的第一课时内容.本课主要学习 ...

  6. 怎么用几何画板制作图形平移和旋转

    在数学教学中,老师们在黑板上作图,都是不能够动的.这样往往不利于老师把自己的课程讲清楚明白.如果图形能够随着课程的进度进行的移动和旋转,这样不仅能够让课程变得生动有趣,还能够帮助学生理解记忆知识点.随 ...

  7. python kivy显示图片_python基于Kivy写一个图形桌面时钟程序代码示例

    本篇文章小编给大家分享一下python基于Kivy写一个图形桌面时钟程序代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. Kivy 是一个开源的 ...

  8. delphi 实现屏幕旋转代码_代码检查 | 如何用Processing实现3D世界

    一花一世界,一叶一菩提.每个人眼中的花是不一样的,每个人眼中的世界也是不一样的 .昔时佛祖拈花,惟迦叶微笑,既而步往极乐.在菩提树下,从一朵花中便能悟出整个世界,最终得升. 今天就来给大家介绍日本先生 ...

  9. html旋转代码_用CSS实现一个抽奖转盘(附详细代码+思路)

    原文:https://www.cnblogs.com/wenruo/p/9732704.html 先上效果 基本是用CSS实现的,没有用图片,加一丢丢JS.不过没有考虑太多兼容性. 首先画一个转盘 & ...

最新文章

  1. html css 让元素居中显示,html – CSS:如何在居中元素周围对齐元素?
  2. 一个请求方法是一个线程吗?不是!
  3. OpenKruise v0.7.0 版本发布:新增周期任务分发控制器
  4. 全球农业南南合作论坛 唐盛尧:对话国际农民丰收节贸易会
  5. ue4 classuobject没有成员beginplay_关于UE4使用的一些想法(一)
  6. 搭建项目前端页面环境
  7. 绿色vmware 安装后看不到虚拟的网卡
  8. 保存网络文章以供以后使用Instapaper阅读
  9. C++继承详解三 ----菱形继承、虚继承
  10. 锻炼产品架构思维的4个维度
  11. 笨办法学 Python · 续 练习 27:`tr`
  12. 如何看待EMNLP2021 best paper? 邱锡鹏教授:以为走错会场了
  13. Qt: json对象转格式化字符串
  14. AFLGO插桩代码分析记录
  15. SSL安全证书:免费的SSL证书申请渠道有哪些?
  16. LWN:5.18合并窗口第一部分!
  17. 问题 F: 是你飘了,还是我拿不动刀了(字符串问题)
  18. Springboot的@Aspect使用
  19. Android开发艺术探索——第七章:Android动画深入分析
  20. 用matlab对图像进行边缘填充,matlab中的图像边界填充函数 | 学步园

热门文章

  1. ffmpeg api解码音频,得到pcm数据
  2. 顶楼的房子可不可以买?
  3. Unity 制作小地图(Minimap)系统 两种方法
  4. 崩坏三 - 武器 - 童谣 NPR渲染分析
  5. Unity信号干扰shader(参照崩坏3源码翻译剧情对话效果)
  6. LeetCode琅琊榜第二层-最长回文子串问题(动态规划)
  7. dnf服务器未响应怎么解决方法,DNF未响应的原因分析与解决方法
  8. android沉浸式状态栏实现
  9. iPhone上用的NVMe闪存,与Android旗舰上用的UFS2.1闪存,各自的优劣是什么?
  10. 数据源自动重连机制设置