我有一個資源文件(以.png格式),其中包含幾個圖像。它們的大小和間隔都應該根據其偏移而相對容易地調用。C#picturebox加載圖像的偏移量
我可以調整picturebox的大小以適合一張圖片,但是,我不知道如何根據偏移量來加載圖像,所以我總是隻能得到左上角的圖像。
我真的很喜歡使用任何方法,但一直沒有能夠出現在我的搜索有用的東西 - 因爲我真的不知道要準確搜索什麼。
我有一個資源文件(以.png格式),其中包含幾個圖像。它們的大小和間隔都應該根據其偏移而相對容易地調用。C#picturebox加載圖像的偏移量
我可以調整picturebox的大小以適合一張圖片,但是,我不知道如何根據偏移量來加載圖像,所以我總是隻能得到左上角的圖像。
我真的很喜歡使用任何方法,但一直沒有能夠出現在我的搜索有用的東西 - 因爲我真的不知道要準確搜索什麼。
假設你的PNG圖像imgwidth像素寬和ñ水平的圖像組成,你可以試試這個:
Image imgsrc = Image.FromFile("...."); // your PNG file
Image imgdst = new Bitmap(imgwidth/n, imgsrc.Height);
using (Graphics gr = Graphics.FromImage(imgdst))
{
gr.DrawImage(imgsrc,
new RectangleF(0, 0, imgdst.Width, imgdst.Height),
new RectangleF(imgindex * imgwidth/n, 0, imgwidth/n, imgsrc.Height),
GraphicsUnit.Pixel);
}
的想法是創建一個新的圖像(imgdst)和借鑑它你需要的原始圖像部分。
隨着新的形象,你可以做你喜歡什麼,甚至畫在一個picturebox。
這聽起來像你正在做一些像精靈一樣的東西;您只需加載一個圖像,然後移動「查看端口」以顯示不同的圖像。
如果是這樣的話,您將無法通過股票PictureBox
類來做到這一點。您可以控制尺寸,但不能定位。我認爲你必須做的是通過代碼加載圖像,並基於該圖像的必要部分(使用GDI +)創建新圖像。
您可以將PictureBox
放在Panel
中,使用面板作爲您的視口。確保面板的AutoScroll
屬性是false
,因此不會出現滾動條。然後,加載PictureBox
中的圖像,並將其相對於Panel
的位置進行設置,以便只顯示您想要顯示的區域。
pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;
pictureBox1.Image = Image.FromFile(@"C:\MyPicture.png");
pictureBox1.Location = new Point(-100, -100);
如果你只是想顯示爲用戶提供圖像,可以爲圖像添加到一個標籤,然後設置圖像的對齊屬性,只要你喜歡。
我的第一個想法是存儲原始圖像並創建一個副本,但這樣更好,謝謝。 –
這是個好主意 –