1. 程式人生 > >C#Bitmap裁剪圖片後顯示在pictureBox內,形成圖片移動效果

C#Bitmap裁剪圖片後顯示在pictureBox內,形成圖片移動效果

使用者介面大作業,選擇時區時將地圖上該時區顯示在圖片中間。


就是這樣,地圖是720*180的,含有兩個世界地圖,足夠剪裁出時區在中間的360*180圖,所以pictureBox是360*180的。
這是複製剪裁圖片的函式,

private void Clone_map(/*PaintEventArgs e,*/int X)
        {
            Bitmap myBitmap = new Bitmap("D:/C#Projects/8-image/timezone_map.GIF");//myBitmap複製過來
//之前這裡寫的是<span style="font-family: Arial, Helvetica, sans-serif;">Bitmap myBitmap = new Bitmap(pictureBox_map.Image);結果只能剪裁一次,再選擇時區時就記憶體不足,是cloneRect超出原圖範圍,</span>
<span style="font-family: Arial, Helvetica, sans-serif;">//我猜原因是pictureBo裡的圖片被剪後就變成了被剪後的圖,是360*180的圖了不再是720*180,所以超出範圍了,不知道怎麼改才行就改成直接從資料夾匯入了</span>
<span style="font-family:Arial, Helvetica, sans-serif;">//如果依然用從pictureBox裡匯入的話改怎麼改,希望知道的朋友指導下
</span>
            RectangleF cloneRect = new RectangleF(180+X, 0, 360, 170);//從0+X處開始剪裁360*180的圖
            System.Drawing.Imaging.PixelFormat format =myBitmap.PixelFormat;//獲取myBitmap的PixelFormat,記為format
            //MessageBox.Show(X.ToString());//測試format符合要求
            Bitmap cloneBitmap = myBitmap.Clone(cloneRect, format);//複製cloneRect所表示矩形框內的圖,常提示記憶體不足
            this.pictureBox_map.SizeMode = PictureBoxSizeMode.CenterImage;//設定顯示模式
            this.pictureBox_map.Image = Image.FromHbitmap(cloneBitmap.GetHbitmap());
            //this.pictureBox_map.SizeMode = PictureBoxSizeMode.CenterImage;//設定顯示模式  
            myBitmap.Dispose();
            cloneBitmap.Dispose();
           
        }

在選擇時區後呼叫
 private void comboBox_SelectedIndexChanged(object sender, EventArgs e)//comboBox選擇時區時
        {
            label_tz.Text = comboBox.Text;//tab1頁面下顯示所選時區
            button_OK.Focus();
            for (i = 0; i < 49; i++)//找出所選timezone對應的offset
            {
                if (timezone[i] == comboBox.Text)
                {
                    s = offset[i];
                    int screenOffset = int.Parse(s);
                    int screenOffsetX = screenOffset / 4;
                   // MessageBox.Show(screenOffsetX.ToString());//檢測screenOffsetX的值是否和我手動計算的一致,可忽略
                    Clone_map(screenOffsetX);
                    break;
                }
            }
 //記錄時區名的陣列
        string[] timezone ={"(GMT -12:00) Eniwetok, Kwajalein","(GMT -11:00) Midway Island, Samoa",
"(GMT -10:00) Hawaii","(GMT -09:00) Alaska",
"(GMT -08:00) Pacific Time (US and Canada); Tijuana:","(GMT -07:00) Arizona",
"(GMT -07:00) Mountain Time (US and Canada)","(GMT -06:00) Central Time (US and Canada)",
"(GMT -06:00) Mexico City, Tegucigalp","(GMT -06:00) Saskatchewan",
"(GMT -05:00) Bogota, Lima","(GMT -05:00) Eastern Time (US and Canada)",
"(GMT -05:00) Indiana (East)","(GMT -04:00) Atlantic Time (Canada)",
"(GMT -04:00) Caracas, La Paz","(GMT -03:30) Newfoundland",
"(GMT -03:00) Brasilia","(GMT -03:00) Buenos Aires, Georgetown",
"(GMT -02:00) Mid-Atlantic","(GMT -01:00) Azores, Cape Verde Is.",
"(GMT +00:00) Greenwich Mean Time; Dublin, Edinburgh, London, Lisbon","(GMT +00:00) Monrovia, Casablanca",
"(GMT +01:00) Berlin, Stockhold, Rome, Bern, Brussels, Vienna","(GMT +01:00) Paris, Madrid, Amsterdam",
"(GMT +01:00) Prage, Warsaw, Budapest","(GMT +02:00) Athens, Helsinki, Istanbul",
"(GMT +02:00) Cairo","(GMT +02:00) Eastern Europe","(GMT +02:00) Harare, Pretoria",
"(GMT +02:00) Israel","(GMT +03:00) Baghdad, Kuwait, Nairobi, Riyadh",
"(GMT +03:00) Moscow, St. Petersburgh, Kazan, Volgograd","(GMT +03:00) Tehran",
"(GMT +04:00) Abu Dhabi, Muscat, Tbilisi","(GMT +04:30) Kabul",
"(GMT +05:00) Islamabad, Karachi, Ekaterinburg, Tashkent",
"(GMT +05:30) Bombay, Calcutta, Madras, New Delhi, Colombo","(GMT +06:00) Almaty, Dhaka",
"(GMT +07:00) Bangkok, Jakarta, Hanoi","(GMT +08:00) Beijing, Chongqing, Urumqi",
"(GMT +08:00) Hong Kong, Perth, Singapore, Taipei","(GMT +09:00) Tokyo, Osaka, Sapporo, Seoul, Yakutsk",
"(GMT +09:30) Adelaide","(GMT +09:30) Darwin","(GMT +10:00) Brisbane, Melbourne, Sydney",
"(GMT +10:00) Guam, Port Moresby, Vladivostok","(GMT +10:00) Hobart",
"(GMT +11:00) Magadan, Solomon Is., New Caledonia","(GMT +12:00) Fiji, Kamchatka, Marshall Is.",
"(GMT +12:00) Wellington, Auckland"};
        //記錄offset的陣列,即時間差,單位minutes
        string[] offset = {"-720","-660","-600","-540","-480","-420","-420","-360",
                           "-360","-360","-300","-300","-300","-240","-240","-210",
                           "-180","-180","-120","-060","+000","+000","+060","+060",
                           "+060","+120","+120","+120","+120","+120","+180","+180",
                           "+180","+240","+270","+300","+330","+360","+420","+480",
                           "+480","+540","+570","+570","+600","+600","+600","+660",
                           "+720","+720"
                          };
        int i;//用於記錄是第幾項
        string s;//用於記錄時區所對應的offset


相關推薦

C#Bitmap裁剪圖片顯示pictureBox形成圖片移動效果

使用者介面大作業,選擇時區時將地圖上該時區顯示在圖片中間。 就是這樣,地圖是720*180的,含有兩個世界地圖,足夠剪裁出時區在中間的360*180圖,所以pictureBox是360*180的。 這是複製剪裁圖片的函式, private void Clone_map(/

C# 連線mysql,連線顯示多個執行緒池

資料庫連線字串 return string.Concat(new string[]             {      &n

UIButton設定圖片顯示圖片不使用@3x規格

問題描述 專案中APP有個大的圖片按鈕,開始直接用UIButton設定圖片進行顯示。 但是使用了產品化給的切圖後,發現按鈕中的圖片很小,在6p中的大小明顯不是@3x格式的。 之後嘗試了各種方法設定UIButton的frame,UIButton中imageV

微信小程式 實現點選按鈕選擇圖片顯示圖片並且可以預覽該圖片

wxml: js: data裡 要寫圖片這個變數。 點選選擇圖片 預覽圖片 給 image加事件,利用e.target.dataset.src 獲取當前圖片地址,賦值給wx.previewImage的current變數。

android 刪除圖片通知系統圖庫刪除圖片

//刪除檔案後更新資料庫 通知媒體庫更新資料夾,!!!!!filepath(資料夾路徑)要求儘量精確,以防刪錯 public static void updateFileFromDatabase(Context context,String filepath){ Strin

Excel單元格插入圖片(VBA建立函式根據圖片名稱批量插入)

1. 在桌面建立素材資料夾“相簿”存放要插入的圖片,Excel“花”為待插入的Excel表。2. “花”表格內容佈局如下 3. 建立VBA函式(sheet1-->右鍵-->檢視程式碼-->將如下程式碼複製進來-->儲存)Sub 插入圖形應用() Fo

CSS 圖片居中顯示不變形顯示圖片中間部分

<div style="background-image:url(這裡填寫圖片的路徑}); background-repeat: no-repeat; background-position:center center; background-size: cover

基於Vue + Node.js + MongoDB的圖片上傳組件實現圖片的預覽和刪除

信息 clas 發送數據 演示 新增 one input標簽 return tof 公司要寫一些為自身業務量身定制的的組件,要基於Vue,趁著這個機會,自己在業余時間也寫了個組件,選擇寫圖片上傳是因為自己之前一直對這個功能比較迷糊,所以這次好好了解了一下。演示在網址打開後的

圖片列表分頁外掛相簿圖片展示素材庫圖片展示

(1)第一種外掛效果圖如下: (2)第二種外掛效果圖如下: 兩種圖片分頁展示外掛,自己比較喜歡第一種,css等樣式,也用心除錯了一下,蘿蔔青菜各有所愛吧 ^_^ 提供的外掛是純前臺的指令碼,下載下來開啟index.html頁面即可看到效果。 也提供了通過AJAX載入資

SDWebImage載入圖片URL第一次失敗後面圖片URL存在不重新整理的問題

業務需求,有時候會首先出現圖片的網路URL地址,但是並沒有顯示出來,使用SDWebImage顯示圖片如下 self.itemImageView sd_setImageWithURL:<#(nullable NSURL *)#>]; 但是發現,後面

Android問題集(二)——TextView在點選時顯示不同顏色Button點選效果

1、在res目錄下新建名為color資料夾; 2、在color中新建text_color.xml檔案,並選擇selector選項(如下圖): 3、在text_color.xml中填寫如下程式碼: <?xml version="1.0"

對於根據圖片url的轉base64下載圖片的工具類

import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.File; import java.io.FileOutputStream; import java.io

前端圖片上傳功能可刪除可限制上傳張數可限制圖片的格式和大小pc端移動端都通用。原生無依賴。

html部分: <div class="item"> <div class="title small_title">上傳專案圖片</div> <div class="contain_upload">

C# 中 PictureBox 載入圖片無法刪除解決方法

//顯示圖片 private void button1_Click(object sender, EventArgs e) {     pictureBox1.Image = GetFile(@"f:\demo.gif"); } //不顯示並釋放資源 private void button2_Click(o

c#圖片PictureBox任意角度旋轉問題(360度)

(1) public static Bitmap RotateImage(Image image, float angle) { if (image == null) throw new

c# winform 讀取oracle中blob欄位的圖片並且顯示pictureBox儲存進庫

C#程式碼   private void button2_Click(object sender, EventArgs e)   {       OracleConnection conn = dbc.getConnection();//獲得conn連線      

JavaScript基礎 顯示/隱藏效果 點擊圖片,DIV顯示,圖片更換,點擊更換圖片,DIV隱藏

努力學習 不出 圖片 視頻教程 .cn clas == display 推薦 鎮場詩:    清心感悟智慧語,不著世間名與利。學水處下納百川,舍盡貢高我慢意。    學有小成返哺根,願鑄一良心博客。誠心於此寫經驗,願見文者得啟發。—————————————————————

搞清Image加載事件(onload)、加載狀態(complete)實現圖片的本地預覽並自適應於父元素

斷圖 idt ont election href this 出現 alpha ole onload與complete介紹 complete只是HTMLImageElement對象的一個屬性,可以判斷圖片加載完成,不管圖片是不是有緩存;而onload則是這個Image對象的

固定大小容器不同比例的圖片高度撐滿寬度居中裁剪

logs pos -i borde 同比 最終 分享 1-58 不定 在一個商品展示列表中,一個需求是在一個正方形的方塊中,按原比例展示商品圖片,但是圖片比例不定,需要居中顯示,高度撐滿,寬度多余的隱藏。 結構: imgOuter是固定容器,寬高都是120px; CSS代

qrc資源文件加載裸機環境下圖片顯示

apple eap mage 有關 cat image 取反 根據 format 問題描述:在qt開發環境下,使用qss進行界面美化工作,裏面包含許多圖片資源。最後項目決定把這些圖片資源和代碼一起打包。然後就把圖片資源和qss文件一起編入qrc文件中進行編譯。在本機開發環境