質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SVG

SVGは、XMLを基盤とした2Dベクター画像記述言語。画像を線・面といった図形の集合体として扱うベクター画像のため、環境に適した表示が可能です。アニメーション機能もサポートされており、簡単なインタラクティブコンテンツ作成もできます。

.NET

.NETとは、主に.NET Frameworkと呼ばれるアプリケーションまたは開発環境を指します。CLR(共通言語ランタイム)を搭載し、入力された言語をCIL(共通中間言語)に変換・実行することが可能です。そのため、C#やPythonなど複数の言語を用いることができます。

Q&A

0回答

240閲覧

.NetでSVG⇒EMFの変換をしたい!

xail2222

総合スコア1497

SVG

SVGは、XMLを基盤とした2Dベクター画像記述言語。画像を線・面といった図形の集合体として扱うベクター画像のため、環境に適した表示が可能です。アニメーション機能もサポートされており、簡単なインタラクティブコンテンツ作成もできます。

.NET

.NETとは、主に.NET Frameworkと呼ばれるアプリケーションまたは開発環境を指します。CLR(共通言語ランタイム)を搭載し、入力された言語をCIL(共通中間言語)に変換・実行することが可能です。そのため、C#やPythonなど複数の言語を用いることができます。

0グッド

0クリップ

投稿2023/06/04 20:46

実現したいこと

.NetでSVG⇒EMFの変換を、配置とかきちんとでしたいです。

inkscapeを使えば出来るのはわかっていますが
外部アプリには頼りたくない思いがあります。
でも、SVGを読み解いてまでする力もありません。
外部ライブラリでどうにかならないかと考えています。

該当のソースコード

VB.Net

1 2Imports System.Drawing 3Imports System.Drawing.Imaging 4Imports System.IO 5Imports Svg 6 7Public Class Form1 8 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 9 Dim tSvgDocument As SvgDocument = Svg.SvgDocument.Open("F:\study\gomi\SVGアイコン.svg") 10 11 Dim gra As Graphics = CreateGraphics() 12 Dim ipHdc As IntPtr = gra.GetHdc() 13 Dim metafile2 As Metafile 14 15 metafile2 = New Metafile("F:\study\gomi\SVGアイコン.emf", ipHdc, New Rectangle(0, 0, CInt(tSvgDocument.Width.Value), CInt(tSvgDocument.Height.Value)), MetafileFrameUnit.Point, EmfType.EmfPlusOnly) 16 17 Dim g As Graphics = Graphics.FromImage(metafile2) 18 tSvgDocument.Draw(g) 19 g.Dispose() 20 metafile2.Dispose() 21 gra.ReleaseHdc(ipHdc) 22 23 End Sub 24 25 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 26 Dim tSvgDocument As SvgDocument = Svg.SvgDocument.Open("F:\study\gomi\SVGアイコン.svg") 27 Dim gra As Graphics = CreateGraphics() 28 Dim ipHdc As IntPtr = gra.GetHdc() 29 30 Dim stream As MemoryStream = New MemoryStream() 31 Dim metafile As Metafile 32 metafile = New Metafile(stream, ipHdc, EmfType.EmfPlusOnly) 33 Dim g2 As Graphics = Graphics.FromImage(metafile) 34 tSvgDocument.Draw(g2) 35 36 g2.Dispose() 37 metafile.Dispose() 38 gra.ReleaseHdc(ipHdc) 39 gra.Dispose() 40 41 Using fs As FileStream = New FileStream("F:\study\gomi\SVGアイコン2.emf", FileMode.Create) 42 stream.WriteTo(fs) 43 End Using 44 stream.Dispose() 45 End Sub 46End Class 47

SVGはNugetで取得しました。

起こっている問題

今のままだと配置や余白が正しく出力できません。

補足情報(FW/ツールのバージョンなど)

VB.Net(.Net Framework)
SVG 3.4.4

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問