说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

图像缩放和居中显示的问题

编辑:说三道四文库 发布时间:2017-10-22 02:02
HTML文档下载 WORD文档下载 PDF文档下载
一个MDI子窗体中,上面放一个TImage,动态载入图片

我想让载入的图像缩放正好显示,如果图片的长和宽都小于MDI主窗体(FormMain)的长和宽,就按原来大小显示,如果不满足以上条件,就缩放,显示的图像尽量大,最后让这个子窗体显示在主窗体的中间。源码如下:

if (Image->Picture->Width < FormMain->ClientWidth - 55
        && Image->Picture->Height < FormMain->ClientHeight - 55) {
        int picWidth = Image->Picture->Width;
        int picHeight = Image->Picture->Height;
        Image->Width = picWidth;
        Image->Height = picHeight;
        ClientWidth = picWidth;
        ClientHeight = picHeight;
    } else if (Image->Picture->Width > Image->Picture->Height) {
        Image->Width = FormMain->ClientWidth - 50;
        ClientWidth = Image->Width;
        Image->Height = Image->Picture->Height* ClientHeight/Image->Picture->Width;
    } else {
        Image->Height = FormMain->ClientHeight - 50;
        ClientHeight = Image->Height;
        Image->Width = Image->Picture->Width * ClientWidth / Image->Picture->Height;
    }

    Left = (FormMain->ClientWidth - Width) / 2;
    Top = (FormMain->ClientHeight - Height) / 2;
    
现在的问题是,如果图片的长或宽有一个大于MDI主窗体(FormMain)的长或宽 ,显示出来的图片旁边有很大空白,我不明白,请高手给我看看。

Image的几个属性:
autosize=false
Stretch = true
Proportional=true
老兄!我想你是搞错了!如果你不想使用Autosize=true,这样啊!
bmp->Width = Image->Width;
bmp->Height = Image->Height;

然后再来确定Image控件的位置!
bmp->Width,bmp->Height是什么变量?

指代哪个?
那是自然,因为图象缩小的比例和你窗口(不符合要求的)的比例不一样呀
给你一个函数吧

TRect Set_Size( int OwnerWidth, int OwnerHeight, int BmpWidth, int BmpHeight)
{
    TRect result;
    int High,Width;
    int X1,Y1,X2,Y2;
    if (((float)OwnerWidth/OwnerHeight)>((float)BmpWidth/BmpHeight)){
        High  = OwnerHeight;
        Width = (double)High*(double)BmpWidth/(double)BmpHeight;
    }
    else{
        Width = OwnerWidth;
        High  = (double)Width*(double)BmpHeight/(double)BmpWidth;
    }
    X1 = (OwnerWidth-Width)/2;
    Y1 = (OwnerHeight-High)/2;
    X2 = X1 + Width;
    Y2 = Y1 +High;
    result.Left   = X1;
    result.Top    = Y1;
    result.Right  = X2;
    result.Bottom = Y2;
    return result;
}
参数OwnerWidth OwnerHeight 是Image 的宽高 BmpWidth BmpHeight 是bmp 的宽高
返回的矩形就是bmp应该在image 里面的位置
记住Image AutoSize = false Stretch = false
这样就能保证图象显示的宽高和原图宽高比例一样了
例:
       Graphics::TBitmap * bmp = new Graphics::TBitmap;
       bmp->LoadFromFile("c:\\b.bmp");
       TRect rect = Set_Size(Image1->Width,Image1->Height,bmp->Width,bmp->Height);
       Image1->Canvas->StretchDraw(rect,bmp);
       delete bmp; bmp = NULL;
让我们一起来做最漂亮的Android界面吧! 响应高达6秒 用户揭露Heroku修改路由“50倍圈钱”? [探讨]响应式设计四大原则 Linux Kernel 3.8发布 停止支持386设备 HTML5手机游戏引擎Devkit开源 程序员的一天:台湾个人移动游戏开发者 极限破解:利用低温环境读取Android加密数据 五种工具保护你的在线隐私 从打压到支持 微软与GitHub的爱恨情仇 “夫妻档”初创公司百万美元打造实时Hadoop系统 编程从娃娃抓起:13岁儿童的移动游戏之梦 新浪管理层调整 许良杰任CTO兼联席总裁 Java,你还会让多少人继续“受伤”? 中国或超美国 成全球智能设备市场霸主 告别手写 API文档生成工具推荐 微软Azure超越亚马逊云计算的性能测试 苹果创新已经被三星超越 不靠广告也盈利:移动应用掘金7大案例剖析 谈Clash of Clans货币化的成功 UX设计师应当规避的七大问题 初创公司Citus Data将CitusDB扩展到Hadoop 移动医疗:巢儿孵化器为何笃信是创业金矿? 一个新的雅虎:雅虎主页改版 谷歌发布Google Glass最新视频 公开接受预定 微软Windows Blue结束半程开发 或今年8月推出 JavaFX即将开源,支持iOS与Android开发 趣味编程网Codecademy携手Twitter、Evernote、Box等推出系列API教程 开发者,别让任何人绑架你的工作节奏 REST Style来袭 LinkedIn开源Rest.li框架 [探讨] 是用jQuery框架还是自造车轮呢? 一周消息树:Java 你还会让多少人继续“受伤”? 再次发表DATAGRID问题·关于批量得~~ 欣赏一下这首诗吧。。。太棒了 高手请进,客户端连接不到EASERVER是怎么回事?(高分) Applet无法嵌到HTML中。。。。 如何得到文件的日期? 短信网关的api包含三个文件在CBC中怎样使用? 我以前设计ASP.NET页面时,没有用vs.net,现在用vs.NET怎么打开?怎么显示web窗体? 写了一个类:继承CStatic类,搞了点特写,怎么样才能放到对话框上啊? sql语句求救 VC里的error look怎么用呀??? 新手:为什么可以用notes预览却不可以用ie预览? 关于水晶报表的价格问题!!! 其实我真的很郁闷,从此我再也不灌水了,大家不要想我…… 关于arp的小问题 请给我一个在线升级的例子。。。。 更新记录遇到的简单问题!!请高手指点--在线等待 关于字符串问题(局部变量)急!!!!!!!!!今夜无眠 VB程序打包好以后为什么不能安装 兄弟们给我起名啦,,up也有分!! 学单片机,推荐点好书,谢谢各位大虾了 用JSP条件来触发Javascript弹出一个小窗口怎么做? 难道要给32个参数? PB 连接 SQL SERVER 2000 问题(多用户无响应!!) 关于Pointer类型数据和自定义的数据类型(Record),TList的保存问题。 请问哪里有《WRITING WINDOWS VXD AND DEVICE DRIVER》下载,中英文皆可,作者KAREN HAZZAH 还是#pragma的问题请教高手 用鼠标选定图形应该怎么做? !!!超长数字,大家猜猜,欢迎灌水!!!! 关于localhost不能直接连接的问题 请问一个很简单的问题,做了一个查询功能,如果没有查到记录,怎样做才能提示:没有满足条件的记录!的这样的信息呢?很菜的问题! 如何在浏览器客户端上载一个文件,传送到SERVER数据库? 关于求余和with语句 各位各位,小弟有新发现哦,爽。 我想学GIS (dos高手的挑战!!!)如何在dos下对声卡编程选通CD-IN通道,实现CD播放 jdbc连接oracle8i的问题?急。 如何用<logic:iterate>与<html:radio>配合将<logic:iterate>的列出多项列表项,从中选定一项,并对该项进行操作?如何联系?谢谢!急用! 哪有jbuilder中文版文档 请问怎样将整个屏幕拷贝到一个Image对象? 如何在vbscript中获取javascript取得的下拉菜单所选择的值?(急,在线等) 在聊天室中服务器的socket怎么和多个客户端的socket建立连接? 如何在Post以后保存Post之前的值 史上最恐怖的10个鬼故事!!! j2ee中的EAR 和war是怎么生成的,具体用什么工具,怎么生成的 紧急降落求救(在线等待)…………谁能告诉这个水晶报表的问题04, 图形如何和数据库关联? 积分运算? 急!!! 怎样在RowFilter中用函数表达式, 如SubString, ToString等? VB中的WINSOCK在哪里?我打开VB找了半天没找到这个控件,真衰 请教.... 能否在autoexec.bat的内容里: path ......... 加上 ;c:\windows \.....之类的? (东施效颦)讲了什么故事?(简介) “忽如一夜春风来,千树万树梨花开.”这句话真是把( )天写绝了! 像100+3+4这种综合算式,到底是一步算式还是两步算式 东施效颦主要讲了一个什么样的故事 什么样的北风 最后一步是公式吗 第一道I have a pair of gloves.One is on the bed .I can't find 横线.A 为another B为other C为others D为theother.第二道today I will go to lunch with my prearnt.横线 A为yes,please.B have a nice day.C.sure.D.Good idea第三道how about 横 能给我吴青峰写的所有文章吗? 6.4*(1+x)的平方等于10怎么解 《采访xx》作文一篇,600字 求吴青峰写的文章要完整的 数学小博士答案.加算式. 猜字谜:四面密不透风,中间长刮北风 电机声音很大是怎么回事?如果绕阻或者接线接错了,会出现什么情况? 杜甫《春望》一诗中因典型的写出了战火迷漫中人们共有的感受而传颂千古的名句是? 生活中有像东施效颦的例子吗?2个 电机的声音很大 ,什么原因? 请最好用方程解..算式也可以..但能用方程就用方程.1.一辆客车和一辆轿车先后从上海出发到南京,轿车比客车迟开1.5小时,客车平均每小时80千米,轿车平均每小时行100千米,轿车几小时后追上客 有一个topic,然后写一个小短文,要用到关键词“maturity”和“linked”Do you think a child's maturity is linked with how his parents raised him or her does it depend more on personality?Explain with examples from your life 电机声音异常是什么原因 .“烽火连三月,家书抵万金”成为千古传诵的名句,请你从形式和内容上对这两句诗作简要评 现实生活中有哪些类似“东施效颦”的事例? 堆高车电机声音很大,上升速度很慢是什么原因? 如图所示,已知拱形的弧长和高度,求拱形的面积?数据如图所示:注意,曲线l是圆弧,弧长为4.2m(曲线的长度),不是弦长.求拱形(阴影部分)的面积!要求:要有计算步骤和最终的计算结果!不要只给一 行驶时 英语怎么说?TAT 根据不同的算式,补充相应的条件.“快乐女生”节目中,观众现场投票.支持1号选手的有240张票,( )支持2号选手的有多少张票?1、( )算式:240*80%.2、( )算式:240/80%.3、( )算式:240/(1+ 问几道数学题 急死了1.已知 函数y=丨X+3丨的图象与X轴交于点A,点P是该函数图象上纵坐标为3的点,试在X轴上确定一点B,使得三角形PAB是等腰直角三角形,则B点的坐标是?2.某次数学竞赛前60名获奖 核辐射对海里面的鱼等任何生物有影响吗会不会引起不同疾病,造成海里面的生物慢慢地走向灭亡? 用一个凸透镜成像时,下列说法中正确的是A.实像总是正立的,虚像总是倒立的 B.实像和虚像都可能是放大或缩小的 C.成实像时,物体离凸透镜越近像越大 D.成虚像时,物体离凸透镜越近像越大 (2)杜甫《春望》一诗中因典型地写出了战火迷漫中人们共有的感受而传颂千古的名句 已知函数f(x)=x+4除以x+1,数列an中,a1=1,an+1=f(an),n属于正整数,1)若方程x=f(x)的两个实根为m,n,证an-m除以an-n为等比数列 哪里可以查各个测区的地球平均曲率半径?在高程测量中有一种叫三角高程测量,其中公式涉及到一个常数R(R为测区的地球平均曲率半径) 这个R可以通过测区维度查的 但是我找不到这个查询 鸭蛋圆怎么计算`划出来? 中国地理纬度位置最东、西、南、北端的城市分别是啥?求列举 哪里可以查各个测区的地球平均曲率半径?在高程测量中有一种叫三角高程测量,其中公式涉及到一个常数R(R为测区的地球平均曲率半径) 这个R可以通过测区维度查的 但是我找不到这个查询 根据不同的条件和问题,列出相应的算式下午卖出200千克,下午比上午多卖出20%,全天卖出多少千克,算式为?上午卖出200千克,下午比上午多卖出20%,全天卖出多少千克,算式为? 澳大利亚东南部为【 】气候,其特点:夏季【 】,冬季【 】.西南部为【 】气候,其特点:夏季【 】,冬季【 】 30公顷=多少平方千米?用分数表示!急用! 连毛主席都夸我帅 翻译成英文 若sin2a=24/25,则根号2COS(45-a)的值为 地球曲率半径地球的子午线,卯酉线曲率半径各是多少?怎么计算的, 毛泽东会讲英语吗? f(x)=1/2cos-1/2sinx,f(a)=(3根号2)/10,求sin2a的值. 下列说法正确的是A、一定质量气体的体积是不变的B、气体的体积等于所有分子的体积之和C、气体的压强是由于气体能够流动而产生的D、封闭容器内气体对各个方向的器壁的压强大小相同 如图,在四边形ABCD中,AB=CB,E.F分别是BC,AD的中点,P是BD中点,PQ⊥EF于点Q.求证:EQ=FQ 东施效颦是文学故事吗文学故事有哪些 证明n 的3次方减n 能被6整除初一证明题,求救! 关于一道曲线拐点的问题!设函数f(x)满足关系式f''(x)+[f'(x)]^2=x,且f'(0)=0,则A:f(0)是f(x)的极大值B:f(0)是f(x)的极小值C:点(0,f(0))是曲线y=f(x)的拐点D:f(0)不是f(x)的极值点,点(0,f(0))也不是是曲线y= It's smart的中文是什么 30.6平方千米=( )公顷 分数单位是1/8的的最简真分数的和是多少 设抛物线y=2的平方,把它向右移p个单位,或向下平移q个单位,都能使得抛物线与直线y=x-4恰好有一个交点,求p,q的值. 总结凸透镜成像规律时,下列说法中错误的是A,虚像一定是放大的,实像一定是减小的B,像和物在凸透镜异侧是实像,像和物在透镜同侧成虚像C,物局大于焦距成的是实像,物距小于焦距成的是虚像 如图,点B、C、D、E共线,试问图中A、B、C、D、E五点可确定多少个三角形?说明理由.(画得不好,还是以题目为准) 东施效颦是一个什么样的故事? 用上“忽如一夜春风来,千树万树梨花开”写句子. 如图,点A,B,C,D,E共线,试问图中A,B,C,D,E五点可却定多少个三角形?并说明理由.图片 已知a=(2+根号3)分之一,求[(a+2)分之(a^2-a-6)]-[(a^2-a)分之(根号a^2-2a+1)]已知a=(2+根号3)分之一,求[(a+2)分之(a^2-a-6)]-{(a^2-a)分之(根号[a^2-2a+1])}的值 长期和短期总需求-总供给模型的区别 长期和短期总需求-总供给模型的区别 一个金属球,在空气中称时,弹簧测力计的读数为14.7N,浸在水中称时,弹簧测力计的读数为4.9N,已知该金属的密度为2.0*1000kg/立方米,问该球是空心还是实心?(请将计算过程明确的写出,) “甲壳虫”主唱故居获拍77万美国男子手机“防弹护主”美情报高官供出欧洲盟友美国拒绝回应“在北京、上海等地设监听津巴布韦灵车撞上油罐车至24人死亡 联合国发言人说美国已保证不会对联合国外媒曝美国安局秘密窃取雅虎和谷歌数据墨西哥警察路边与女子发生性关系视频网解放军三大舰队在西太平洋完成三轮实兵孕妇就医多次碰壁 医生:医患关系紧张美国拒绝回应“在北京、上海等地设监听乡镇卫生院腐败高发 卫生院长称不收回富阳法院首推分段倒逼执行机制对付“老新加坡画家上海展示新奇“手机画”外媒对中共三中全会怎么看?问题越来越多 咨询越来越少 自杀干预温州多家典当行集体看走眼 假首饰“骗海上丝绸之路:周边外交的动脉与桥梁强风暴抵达俄罗斯圣彼得堡惊涛拍岸德媒:美在全球设点监控政府通讯澳女公务员出差搞一夜情 拽下台灯砸掉中华人民共和国和苏丹共和国关于建立战广西行政机关负责人出庭应诉规则出台李克强主持召开国务院常务会议俄中共同致力于捍卫二战历史真相呵护这么细 怎样去落地(民生三问)守望历史 为了和平为实现中华民族伟大复兴中国梦凝心聚力以思维转变促发展转型(微观·不弃微小我驻英使馆举行抗战胜利70周年纪念活“跑马”夫妻:活到老,跑到老(我运动冷静看待球员留洋(体坛观澜)探访秦岭最偏远派出所冷静看待球员留洋(体坛观澜)为中外媒体提供优质高效快捷的服务刘少奇与华北抗战(铭记·纪念中国人民张德江出席第四次世界议长大会并发言刘云山会见老挝人革党中央总书记朱马里3D打印人工髋关节获批准张高丽会见苏丹总统巴希尔“他们都是往前冲的”勿忘国耻 圆梦中华
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘