分类
最好的外汇交易平台是哪个

二進位檔案選項即時圖表

EMF圖檔怎麼用?微軟專用向量圖EMF轉開放向量圖SVG教學 / How to convert EMF to SVG format

EMF的全名是Enhanced Metafile,翻譯做Windows增強中繼檔,這是一種微軟專用的向量圖檔案,其目的是為了取代較早期32位元的WMF格式(Windows Metafile,Windows中繼檔)。EMF在Office軟體中能以無鋸齒的向量模式運作,但是它卻很難以高解析度的模式匯出成其他格式的圖片,令人難以使用。站在支持開放格式的立場,我這篇將教你如何將微軟專用的EMF向量圖轉換成開放格式的SVG格式,以便後續再進行編輯或轉換成高解析度的PNG圖檔。這篇教學是在Windows 7環境下使用Word 2013與InkScape來完成整個轉換動作,請確定你有這些環境才能做到本篇教的EMF轉SVG喔。

EMF檔案格式怎麼來的? / Where does EMF come from?

我以前曾經在「將docx檔案解壓縮,抽取文件內的圖片」這篇文章中介紹如何將Microsoft Office XML格式的docx、xlsx、pptx檔案中的圖片檔案抽取出來。以docx為例,我們可以用任何壓縮軟體中的ZIP格式解壓縮docx檔案(把docx當作zip壓縮檔用),然後進入到「word/media」資料夾中,就可以看到該docx檔案中使用的所有多媒體檔案。從上圖可以看到,這份docx裡面包含了多張圖檔,但除了常見的PNG格式之外,卻包含了不知道該怎麼處理的EMF格式圖檔。

如何使用EMF圖檔? / How to use EMF?

EMF檔案要如何使用呢?網路上大部分的教學都會跟你說,1. 開啟Word、2. 插入圖片、3. 選擇EMF檔案插入。上圖就是example.emf在Word 2013中的樣子。作為一個向量圖檔,EMF通常會以方塊、圓圈、線條等單純圖形組成。

技 術 資 訊

HelixCore ––來自 Perforce 的版本管理平台––具備集中模式。將所有資料儲存於一處,能確保開發者隨時都能取得最新的版本。無論開發者身處何地,皆能將所有的變更上傳至中央伺服器。掌握專案的主版本,便能在整個企業中建立單一資訊來源 ( Single Source of Truth ) ;由於團隊成員皆能便捷地看到進行中的工作,所以也能增進溝通的效率。若是使用 Git,工作進度就只能儲存在自己的電腦裡。

集中模式不但能讓產品共同開發,與設計資料再利用,變得更為容易,同時還能確保其可稽核性及可追溯性。儘管 HelixCore 為集中式架構,仍可透過複本與代理伺服器等功能,安全地支援遠端的開發者。這些功能確保大部分的資料處理都能在開發者本地端完成,進而大幅提升系統效能。

提到效能,大家常對 Git 與 Perforce 的比較結果感到意外。

Git 比較快的部分

Git 二進位檔案選項即時圖表 在處理本地提交、比對及合併時,速度較快。但當許多開發者執行 push 與 pull 的時候,則會降低效能和生產力。

Perforce 比較快的部分

HelixCore 是專為速度與規模所設計的產品。一天能夠處理數百萬筆交易、管理數十億個檔案,總資料量以peta為單位。開發者可以在自己的工作站,輕鬆快速地確認自己是否擁有最新版本。此外,HelixCore 二進位檔案選項即時圖表 處理大型 binary 檔案時,會進行鎖定,以避免團隊成員間,產生變更衝突的問題。

透過 Perforce 二進位檔案選項即時圖表 聯合架構,遠端團隊在進行大量複製/提取/程式建構時,也可享受本地端的速度效能;可大幅縮短使用傳統 Git 時,所需的廣域網路等待時間。

處理大型檔案 / binary 檔案

大型檔案與 binary 構件皆為開發工作的一環,這些有可能是程式建構的產物,或是等待測試的成品組件。對某些產業來說,像是遊戲開發公司,這些檔案是整個開發流程中不可或缺的一部分;您必須能夠結合美術人員與程式開發者的工作成果,才能建造出完整的產品。

Git 提供 LFS(大型檔案庫)

目前 Git 正嘗試以 Git LFS 來解決此類問題。但許多大型團隊必須將大量 binary 資產,儲存在如 Nexus 或 Artifactory 等構件庫工具中。這意味著您將不再擁有單一資訊來源,而且這些額外的工具,絕對會使您的建構管線更加複雜。

Perforce 將所有資料儲存在同一個資料庫裡

Git 與 Perforce 都有輕量分支的功能,但兩者追蹤分支的方式不同。

Git 分支

使用 Git 時,一旦分支建立好,您便能在本地的新分支上作業。在您完成變更後、準備提交檔案時,您可以選擇 合併分支 (merge) 或是 二進位檔案選項即時圖表 重整歷史 (rebase) 。然而在自己的電腦上,合併分支的本地複本,並不等同於推送您的變更至中央資料庫。

Perforce 分支

HelixCore將分支建立於檔案階層架構下。您的團隊成員可簽出 (check out) 選定的檔案進行編輯,並將工作成果提交 (submit) 送回資料庫。獨佔式簽出能讓開發者看到其他人正在進行的工作,以避免提交成果時發生衝突。細至檔案層級的權限設定,讓管理者能夠保護最重要的檔案。

Perforce Streams 是我們在分支與合併方法上的創新,既能簡化工作區 (workspace) 的設置,並能引導團隊進行分支管理。開發者可輕鬆地在 stream(分支)間切換,並檢視變更傳播的方向。雖然提交變更至主 stream 時,您還是可能會遇到衝突,但是這些衝突會變得十分容易管理。HelixCore 的優勢在於,不但能夠輕鬆地檢視工作進度,而且能夠預測潛在的合併衝突風險

再者,HelixCore 的管理規模,讓開發者能夠一次提交,包含多個元件的大型變更清單。此舉可大幅降低,因為檔案互相依賴所產生的問題,也不會有使用 Git 時,跨資料庫依賴的問題;唯有如此,才能輕鬆地追蹤管理所有的變更。

Git 的不足之處

其本地作業也相當快速。Git 經常是開發者在大學時代,第一個接觸的版本控制系統,所以大部分開發者都知道常用的 Git 指令,如 clone, commit, push 等。除此之外,它還是免費的!

GitHub、GitLab 二進位檔案選項即時圖表 與 Atlassian,對企業中的軟體開發團隊來說,並不一定合用;例如 Git 的架構,已證實在企業環境下十分難以擴充

二進位檔案選項即時圖表

Choose Data - Sort - Options tab.

區分字母大小寫

亞洲語言注意事項:核取 [區分字母大小寫] 可套用多層比較功能。多層比較功能可略過項目的大小寫和語音符號,先比較項目的原始形式。如果比較後發現項目相同,就會將它們的語音符號列入考量,再進行第二層的比較。如果比較後仍相同,會再將它們的大小寫、字元寬度和日文假名差異列入考量,進行第三層的比較。

範圍包含欄/列標籤

排序時忽略選取區域中的第一列或第一欄。 對話方塊底端的 [方向] 設定會定義此核取方塊的名稱與功能。

Enable natural sort

Natural sort is a sort algorithm that sorts string-prefixed numbers based on the value of the numerical element in each sorted number, instead of the traditional way of sorting them as ordinary strings. For instance, let's assume you have a series of values such as, A1, A2, A3, A4, A5, A6, . A19, A20, A21. When 二進位檔案選項即時圖表 you put these values into a range of cells and run the sort, it will become A1, 二進位檔案選項即時圖表 A11, A12, A13, . A19, A2, A20, A21, A3, A4, A5, . A9. While this sorting behavior may make sense to those who understand the underlying sorting mechanism, to the rest of the population it seems completely bizarre, if not outright inconvenient. With the natural sort feature enabled, values such as the ones in the above example get sorted "properly", 二進位檔案選項即時圖表 which improves the 二進位檔案選項即時圖表 convenience of sorting operations in general.

Microchip Curiosity PIC32MZEF 的示範開機載入器

影像旗標用於存放應用程式映像的狀態。旗標用於 OTA 程序。兩個區塊的映像旗標會判斷裝置的狀態。如果執行映像標記為遞交等待中,則表示裝置處於 OTA 自主測試階段。即使裝置上的映像標記為有效,也會在每次啟動時執行相同的驗證步驟。如果映像標記為新映像,則開機載入器會將其標記為遞交等待中,並在驗證後將其啟動以進行自主測試。開機載入器也會初始化並啟動監視程式計時器,在新的 OTA 二進位檔案選項即時圖表 映像未通過自主測試時,裝置會重新啟動並且開機載入器會透過清除映像來拒絕映像,並執行先前有效的映像。

裝置只能具有一個有效的映像。另一個映像可以是新的 OTA 映像,或遞交等待中 (自主測試)。OTA 更新成功之後,舊映像會從裝置中清除。

映像描述項

快閃裝置上的應用程式映像,必須包含映像標頭後面的映像描述項。映像描述項由建置後公用程式產生,該公用程式會使用組態檔案 ( ota-descriptor.config ) 來產生適當的描述項,並將其附加至應用程式二進位中。此建構後步驟的輸出是可用於 OTA 的二進位映像。

建置新 OTA 映像之前,必須遞增新序號。請參閱 ota-descriptor.config 檔案。開機載入器使用此數量來決定要啟動的映像。有效值為 1 到 4294967292929292929292929292929292929292929

開機載入器用於驗證 OTA 映像的唯一硬體 ID,針對正確的平台所建置。

簽章類型是表示正在使用之加密演算法的字串,並用做尾部的標記。開機載入器支援橢圓曲線數位簽章演算法 (ECDSA)。預設為 sig-sha256-ecdsa。

開機載入器組態

基本的開機載入器組態選項會在 freertos /vendors/microchip/boards/curiosity_pic32mzef/bootloader/config_files/aws_boot_config.h 中提供。某些選項僅供偵錯之用。

允許驗證 OTA 映像描述項中的硬體 ID,以及在開機載入器中設定的硬體 ID。此為選用,如果不需要硬體 ID 驗證,則可以將其停用。

允許驗證 OTA 映像描述項中的起始、結束和執行地址。建議您保持啟用此選項。

建置開機載入器

示範開機載入器會作為可載入專案,包含在 aws_demos 項目位於 freertos /vendors/microchip/boards/curiosity_pic32mzef/aws_demos/mplab/ 在 FreeRTOS 源碼儲存庫中。當 aws_demos 專案建置時,會先建置開機載入器,接著建置應用程式。最終輸出是統一的十六進位映像,包含開機載入器和應用程式。會提供 factory_image_generator.py 公用程式,以產生具有加密簽章的統一十六進位映像。開機載入器公用程式指令碼位於 freertos /demos/ota/bootloader/utility/ 。

開機載入器預先建置步驟

此預先建置步驟會執行稱為 codesigner_cert_utility.py 的公有程式指令碼,從程式碼簽署憑證中擷取公有金鑰,並產生包含 Abstract Syntax Notation One (ASN.1) 編碼格式公有金鑰的 C 標頭檔案。此標頭會編譯至開機載入器專案。產生的標頭包含兩個常數:公有金鑰的陣列和金鑰長度。開機載入器專案也可以在沒有 aws_demos 的情況下建置,並可以做為一般應用程式進行偵錯。