顯示具有 範例教學 標籤的文章。 顯示所有文章
顯示具有 範例教學 標籤的文章。 顯示所有文章

2024年2月23日 星期五

Linux 指令 ln 教學範例

在 Linux 中可以為文件或者目錄建立一個連結,

這個連接能幫助使用者在不同的位置找到同一份文件或者目錄,

不需要花費額外的硬碟空間複製一份在使用的資料夾中,

今天就帶大家來看

Linux 指令 ln 教學範例

硬連結

使用的方法也很簡單:

ln [來源] [連結名稱]

不帶參數(預設)的情況下這樣方式建立的連結檔稱為硬連結,

一般而言在 Linux 的檔案系統中每個文件都有獨特的 inode 碼,

而系統是透過這些 inode碼來分辨檔案,

可以透過 ls -i 來查詢 inode碼。

建立硬連結之後,

連結檔的 inode碼會與來源檔案的一致,

相當於一個檔案的副本

軟連結

軟連結的語法如下:

ln -s [來源] [連結名稱]

使用軟連結建立的連接檔 inode碼跟來源的檔案不同,

這個連結檔相當於 windows中的捷徑,

屬於單純的路徑連結,

這兩者除了 inode碼有差異之外,

軟連結能夠允許對一個不存在的文件進行連結或者對目錄建立一個連結,

但硬連結則無法對一個目錄進行連結,

使用上要稍微注意。

移除連結

移除連接的方式很簡單,

由於 ln 會建立連結檔,

直接以 rm 刪除檔案就能移除連結

覆蓋連結

有時候要更改連結的目標

可以直接在命令加上參數 -f 覆蓋就能夠修改連結的目標

ln -f -s [來源] [連結名稱]

自動備份

若想要保存舊檔案,

可以加一個參數 -b 系統會自動備份舊檔案後再建立連結檔

ln -b -s  [來源] [連結名稱]

或者使用大寫的S來指定備份的檔案結尾名稱

ln -b -S [備份檔名結尾名稱] -s  [來源] [連結名稱]

舉例來說加上 -S ".bak"    ,系統就會以原來連結檔的名稱字尾加上 .bak 作為結尾


之前介紹過了 WSL 的用法,

能讓PC不需要安裝VM就能建立Ubuntu開發環境,

有時候在嵌入式系統編譯的時候會找不到 /lib/modules/x.xx.xxx.x-microsoft-standard-WSL2,

這是由於編譯需要用到一些標頭檔,

這在精簡之後的WSL中沒有,

可以透過

sudo apt-get install -y linux-headers-generic

安裝之後前往 /lib/modules 以 ln -s 的方式將這個目錄指定到安裝的目錄上

sudo ln -s /lib/modules/5.4.0-172-generic /lib/modules/5.15.133.1-microsoft-standard-WSL2

這樣就能順利在WSL2中編譯嵌入式系統相關的程式碼

以上就是今天要帶大家來看的,

關於 Linux指令  ln 的用法與範例教學

2022年12月22日 星期四

C# 多國語言設定範例教學

網際網路盛行,

應用程式沒有本地化要推廣比較沒那麼容易,

擁有多國語言的軟體要在世界各地推廣比較接地氣,

之前介紹了 C# 開啟檔案 OpenFileDialog,

今天主題則是

C# 多國語言設定範例教學

多國語言的設定不難,

加上 Visual Studio 本身也有支援此種做法,

故使用者僅須設定幾個屬性欄位即可,

算是非常方便的功能。

首先要先到 Form 的屬性中找到相關的設定,

跟多國語言相關的設定為 Localizable與Language


Localizable 要設定為 true,

之後再根據基本預設的 Form 分別設定不同語系的介面,

這在選擇 Language之後,

Visual Studio 就會幫忙新增跟語言相關的 Form 


編輯完畢之後,

儲存這個 Form 就能獲取一個字尾為選擇語系的 Form檔案,

將來使用該語系的時候就會載入此 Form


若單純僅需要介面的多國語言,

到這邊就設定完畢了,

若是連程式中的訊息或者字串等都要在地化,

就得自行新增各語系的資源檔


建立資源檔後,

在預設的資源檔案中(此處為 dict.resx , 語言為英文),

必須放置每個要轉換的字串,

最後宣告使用 Properties中的 dict 作為語系檔案

ResourceManager rm = new ResourceManager("multi_sample.Properties.dict", Assembly.GetExecutingAssembly());

就能夠以 GetString()的方法來轉換字串,

此處範例的話就是:

rm.GetString(msg);


同時,

也能夠在元件初始化之前,

手動指定預設的語言,

這樣在程式載入之後就會以預設的語言執行

Thread.CurrentThread.CurrentUICulture = new CultureInfo("en");

就會以英文作為預設的語言執行程式


以上就是今天要教大家的,

關於 C# 多國語言設定範例教學,

最後附上教學影片,

記得點選影片右下角訂閱按鈕支持頻道







2022年12月3日 星期六

Filmora 教學:利用範本製作相簿影片

Filmora是一套功能強大的影片剪輯軟體,

從桌面擷取到影片剪輯樣樣皆通,

甚至想製作相簿影片作為幻燈片輪播也是相當便利,

今天就來探討

Filmora 教學:利用範本製作相簿影片

不管是影片製作還是相簿幻燈片輪播,

其實做法都是大同小異,

而 Filmora 提供了給用戶快速製作相簿影片的方式,

就是透過 Filmora內建的 "模板成片"功能

模板成片

模板成片說穿了就是透過製作範本,

將相片導入節省用戶選用過場特效與濾鏡效果的時間,

達到快速成片的目的,

讓不善影片剪輯的用戶也能製作精美影片。

第一步驟當然是在 Filmora 歡迎畫面中選擇模板成片


在視窗的右半部可看到許多不同分類的範本可選擇,

如果這些都不滿意還可以點擊查看全部,

就有更多的範本可應用,

這些範本官方都做了適當的分類,

當然跨分類的話也不是不行,

選擇自己喜歡的範本即可


接著就是將此次要製作的素材,

也就是照片匯入,

Filmora 才能協助將其匯入範本


匯入後,

會有簡易的說明告知用戶,

可修改每個不同功能的面板來調整影片顯示的結果


右半部的圖層面板主要可用來修改文字與特效,

左半部的素材面板則是可用來修改範本、音樂或者文字


最下方的故事版,

就是剛才匯入此專案的相片了,

可在此隨時替換相片的位置,

或者做些其他與相片相關的編修


修改完所有的文字與特效之後,

背景音樂也能夠替換,

更換為自己更喜歡的音樂


最後選擇導出就能得到製作精美的相簿影片,

若這些都還不能滿足需求,

也能夠選擇將這個範本導出至時間軸


Filmora 會跳出視窗提醒用戶,

進入時間軸可自行定義更加多樣的功能與樣板,

再次地詢問用戶是否要進入


進入時間軸模式之後,

就能看到這個範本在影片中使用了那些特效、轉場效果或者濾鏡等,

這些看的到的特效都能更換為其他的樣式


最終編輯到滿意之後,

就能夠選擇導出,

關於這個相簿的影片就會是一段精美的幻燈片輪播


底下附上製作的流程示意影片,

其實過程並不繁瑣,

對於沒有剪片基礎的用戶也相當的友善,

是一個值得推薦的好功能,




當然,

記得點選影片右下角的訂閱按鈕支持本站 YouTube頻道,

有支持才能讓本站製作更高品質的影片








2020年5月8日 星期五

Blender 教學:新增字幕範例教學


之前介紹使用 Blender 進行影片剪輯,

既然提到影片,

當然就順帶教大家

Blender 教學:新增字幕範例教學

字幕的新增其實步驟不多,

主要都在時間軸上的動作,

首先將藍色的定點移至要新增字幕的時間點,

從時間軸上方工具列 Add中找到 Text


新增後可在時間軸看到該字幕,

在方塊的末端點擊左鍵不放,

隨著顯示字幕時間的長短以拖曳方式調整字幕方塊,

字幕提供了幾個基本的功能:

自訂字型:可使用自己喜愛的字型檔
size:調整字型大小
color:調整字型顏色
Shadow:字型陰影

從 Layout 功能窗格中能選擇:

字型位置(Location X/Y)
對齊方式 (Alignment X/Y)
筆畫寬度 (Wrap Width)

再來就是逐一將要新增的字幕方塊加進時間軸即可,

如果要使用一般常用的 srt 字幕檔的話,

就必須使用第三方模組了,

這就是今天的主題:

Blender 教學:新增字幕範例教學

最後附上簡單的範例教學:




2019年10月5日 星期六

Python dict 為無序序列範例


在程式設計中,

一個序列是否有固定順序,

絕對是很重要的一件事,

今天就介紹下:


Python dict 為無序序列範例

現在就先來看看在不同的軟體下,

同一段程式碼呈現的差異:


在Pycharm的Python Console:

rank = {'Nick': {'Coco': 1, 'Joker': 5},'John': {'Coco': 5, 'Joker': 1},'Kevin': {'Coco': 4, 'Joker': 2},'May': {'Coco': 1, 'Joker': 3}}

for n in rank:
    print (n)
   
顯示結果為:

Nick
John
Kevin
May



但是同樣的一段Code,

在之前介紹過的Python Tutor中,

卻是呈現May , Nick , John , Kevin的順序。 





其原因很簡單,

因為原始碼中的序列 rank 宣告為 dict ,

而 dict 為無序序列。

若在此範例中,

要顯示有固定順序的序列該如何做呢?

有下列幾種方式:

1. 將 dict 轉為有序的 List

2. 建立一個 key List 當作順序的參照

3. 在 Python 3.6 版本之後,可使用有序字典 OrderedDict

以上幾種方式都能解決 dict 的順序問題,



這裡以第2種方法為範例:

若要照著人名 Nick , John , Kevin , May的順序顯示的話,

可寫為:

rank = {'Nick': {'Coco': 1, 'Joker': 5}, 'John': {'Coco': 5, 'Joker': 1}, 'Kevin': {'Coco': 4, 'Joker': 2}, 'May': {'Coco':1, 'Joker': 3}}
#請在下方編寫code
keys = ['Nick', 'John', 'Kevin', 'May']
for k in keys:
    print(k)

特別在輸入輸出資料時,

更應該注意順序