日期:2014-05-17  浏览次数:21313 次

C#在一个300*300像素的PictureBox框中如何量测出一幅3678*2736像素的完整图像坐标
一个300*300像素的PictureBox框中放一幅3678*2736像素的图像,PictureBox框的最大坐标是300*300,而这幅图的最大坐标是3678*2736像素,如何在300*300像素的框中量测出这幅图像的全部坐标,其最大坐标为(3678,2736)。

------解决方案--------------------
是要做类似地图漫游的功能么?
建议先对你要显示的大图切片,弄成一系列的瓦片。
切片程序可以自己写。是创建位图对象,绘图和保存等操作的循环。
这种情况下也不建议用滚动条,而是设计成用户鼠标拖动的操作。
可以在MouseDown记录个初始坐标,MouseMove判断是否鼠标已经按下,按下的话就是拖动。
记录当前坐标与初始坐标的差异,从逻辑上计算应该漫游的区域,刷新图片框,对于涉及的切片图形,在图片框的Paint事件中绘图。
这样,你就可以在一个图片框中快速地漫游一个超大的图片了。
这些个步骤涉及比较复杂的平面几何的计算,但并不难。
你可以把你的图片都切成500*500左右的。
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

使用滚动条。

pictureBox控件没有滚动条

PictureBox的AutoScroll设置为true


PictureBox没有AutoScroll这个属性

用个panel 300*300 设置AutoScroll有滚动条,里面放PictureBox
设置PictureBox的高宽跟图片的高宽一样,Bitmap有width和height属性的
------解决方案--------------------
picturebox放到panel中,设置panel出滚动条,大小300x300.picturebox为图片实际大小即可。