| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2664 人关注过本帖
标题:获取图片框大小
只看楼主 加入收藏
sclx88
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2016-7-31
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
获取图片框大小
我画了个图片框,我想让图片刚好和图片框大小一样,但是图片按像素转换大小总是不合适。大神帮我看看
图片框大小代码,屏幕分辨率1440*900
picture1.top = 0 
picture1.left = 2000
picture1.height = screen.height - 500 
picture1.width = screen.width - 2000
搜索更多相关主题的帖子: 分辨率 图片 
2016-09-07 20:49
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:941
专家分:5244
注 册:2015-8-10
收藏
得分:7 
参考这个
http://bbs.
2016-09-08 08:42
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:7 
这个使用 PaintPicture  命令去贴图。

有三种方式,
1、是不管比例,直接把原图缩放贴进去。所有的参数给齐,都给原始参数。
2、管比例,把原图最大的缩放贴进去。先计算出 比例,然后以一个为准,计算另一个,同意计算 X2,Y2。以让图像居中。
3、管比例,把原图截取目标区域贴进去。Width2、Height2 与 Width1、Height1 相同。
你要哪一种?
都是计算 PaintPicture 的 Width1、Height1、Width2、Height2 四个参数进去


PaintPicture 方法的语法包含下列部分:

部分 描述
object 可选的。一个对象表达式,其值为“应用于”列表中的一个对象。如果省略 object,带有焦点的 Form 对象缺省为 object。
Picture 必需的。要绘制到 object 上的图形源。Form 或 PictureBox 必须是 Picture 属性。
x1, y1 必需的。均为单精度值,指定在 object 上绘制 picture 的目标坐标(x-轴和y-轴)。object 的 ScaleMode 属性决定使用的度量单位。  
Width1 可选的。单精度值,指示 picture 的目标宽度。object 的 ScaleMode 属性决定使用的度量单位。如果目标宽度比源宽度 (width2) 大或小,将适当地拉伸或压缩 picture。如果该参数省略,则使用源宽度。
Height1 可选的。 单精度值,指示 picture 的目标高度。object 的 ScaleMode 属性决定使用的度量单位。如果目标高度比源高度 (height2) 大或小,将适当地拉伸或压缩 picture。如果该参数省略,则使用源高度。
x2, y2 可选的。均为单精度值,指示 picture 内剪贴区的坐标(x-轴和y-轴)。object 的 ScaleMode 属性决定使用的度量单位。如果该参数省略,则缺省为 0。
Width2 可选的。单精度值,指示 picture 内剪贴区的源宽度。object 的 ScaleMode 属性决定使用的度量单位。如果该参数省略,则使用整个源宽度。
Height2 可选的。 单精度值,指示 picture 内剪贴区的源高度。object 的 ScaleMode 属性决定使用的度量单位。如果该参数省略,则使用整个源高度。
Opcode 可选的。是长型值或仅由位图使用的代码。它用来定义在将 pictur 绘制到 object 上时对 picture 执行的位操作(例如, vbMergeCopy 或 vbSrcAnd 操作符)。关于位操作符常数的完整列表,请参阅 Visual Basic Help 文件中的 RasterOp Constants 主题。
在使用opcode时有一些限制。例如,如果资源是图标或图元文件,则只能使用 vbSrcCopy,而不能使用其他的opcode;并且,与图案 (或 SDK 术语中的"画笔"),如 MERGECOPY、 PATCOPY、 PATPAINT 和 PATINVERT,相交互的opcode实际上是同目标的 FillStyle 属性交互。

注意   Opcode 用于将按位操作传递到位图。当传递其他图象类型时将一个值给该参数会造成“无效过程调用或参数”错误。这是设计的原因。要避免这个错误,对于除位图外的图象,将 Opcode 参数置为空。
 

授人于鱼,不如授人于渔
早已停用QQ了
2016-09-08 08:44
sclx88
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2016-7-31
收藏
得分:0 
回复 3楼 风吹过b
大神  这3种方法虽然好,但是各有利弊,我的想法很简单,在固定分辨率下,图片框大小其实是个固定值,我需要计算这个固定值来裁剪图片大小,但是我每次裁剪出来的大小都不合适
2016-09-08 10:02
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:7 
使用Image控件根本不需要考虑图片大小的问题,在设计时,设计好图片框的大小,然后根据你的需要:
一、使图片框按图片大小显示图片,只有将其Image1控件的属性Stretch 设置为 False(假)就可以,这样图片框会依据图片大小显示;
二、使图片按图片框的大小显示,只要将其Image1控件的属性Stretch 设置为 True(真)就可以,这样图片会依据图片框的大小显示。
非常方便。

请不要选我!!!
2016-09-08 18:56
sclx88
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2016-7-31
收藏
得分:0 
回复 5楼 ZHRXJR
大神,我来说说这样的弊端,看怎么解决
1.图片框按图片大小显示图片,对于大小不一的图片,图片小填不满窗口,图片过大会只显示一部分图片。
2.图片按图片框的大小显示,这个会形成不同程度的拉升,一个是像素有要求,二是若图片等比例缩放,图片框会有空白,不等比例图片失真。
3.截取图片指定位置,不能保证每个图片都刚好截到主体部分。
我的想法是确保某一分辨率下图片可以完全显示,对于高分辨率,无非是增加空白,但图片和相关控件位置不会变,对于后期维护很有利。
2016-09-08 19:23
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
在指定填充区域大小的情况下,图像填充,我想到的一共就是6种模式:

1、不按比例缩放,完整填充
2、按比例缩放,填充。这里又分图像左上角和图像居中2种。有空白。
3、不缩放,只剪正好大小的图像上去。
4、按短边比例缩放,长的剪掉。
5、小图重复平铺,直到铺满整个区域来为止。大图处理与3相同。
6、小图居中,上下左右都留空。大图处理同4.

你已否决了,1,2,3,
请问你要用哪种模式?

windows背景图,提供拉伸=1 居中=6,平铺=5,适应=2,
还有一种填充,不知是哪种。



[此贴子已经被作者于2016-9-8 21:00编辑过]


授人于鱼,不如授人于渔
早已停用QQ了
2016-09-08 20:57
sclx88
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2016-7-31
收藏
得分:0 
回复 7楼 风吹过b
大神,我已经找到解决办法了,谢谢
我是运行窗口,然后截屏放到画图程序获取像素值,根据像素值裁剪,保证图片清晰度又便于维护
另外,我想用PNG图片作为触发事件,有什么简单的方法么
2016-09-09 10:39
快速回复:获取图片框大小
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034736 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved