「開発」カテゴリーアーカイブ

.NET CoreでSystem.Drawingを使う Ubuntu編

Ubuntuにおいて、.NET CoreでSystem.Drawing配下のライブラリを扱う方法を記述します。
OpenTKにおいて、テクスチャなどを扱う際に必要です。

UbuntuでSystem.Drawing配下のライブラリ利用時に、以下のようなエラーが発生した場合の対処方法となります。

例外が発生しました: CLR/System.TypeInitializationException
An unhandled exception of type ‘System.TypeInitializationException’ occurred in System.Drawing.Common.dll: ‘The type initializer for ‘Gdip’ threw an exception.’
Inner exceptions found, see $exception in variables window for more details.
Innermost exception System.DllNotFoundException : Unable to load DLL ‘libgdiplus’: The specified module could not be found.


$ sudo apt-get update
$ sudo apt-get install libgdiplus

これだけ!
macに比べるととっても簡単です。

.NET CoreでSystem.Drawingを使う mac編

OS Xにおいて、.NET CoreでSystem.Drawing配下のライブラリを扱う方法を記述します。
OpenTKにおいて、テクスチャなどを扱う際に必要だったので・・・

まずは、X11をインストールします。ここからdmgをダウンロードしてインストールします。

インストール後はシンボリックリンクを貼っておきます。


ln -s /opt/X11/include/X11 /usr/local/include/X11

VSCodeを立ち上げ、Shift(⇧)+Command(⌘)+Pを押して “nuget” と打ちます。リストから「NuGet Package Manager: Add Package」を選択します。※NuGetインストール済みを想定

続いて “System.Drawing.Common” と打ってリターンキーを押下し、「System.Drawing.Common」を選択します。すると、インストール可能なバージョンリストが表示されるので選びます。特に理由がなければいちばん新しいバージョンを選びます。

次に、ターミナルからlibgdiplusをインストールします。事前に色々な依存ライブラリを入れてから、ソースを持ってきてメイク&インストールです。エラーやワーニングが出るかもしれません。柔軟に対応する必要があります。


$ brew install autoconf 
$ brew install pkg-config 
$ brew install readline 
$ brew install automake 
$ brew install gettext 
$ brew install glib 
$ brew install intltool 
$ brew install libtool 
$ brew install cairo
$ brew install jpeg
$ brew install libtiff
$ git clone https://github.com/mono/libgdiplus.git
$ cd libgdiplus
$ CPPFLAGS="-I/usr/local/opt/libpng12/include -I/opt/X11/include" LDFLAGS="-L/usr/local/opt/libpng12/lib -L/usr/X11/lib" ./autogen.sh
$ ./configure
$ make && make install

Linux/Windows/Mac共通で、C#によりOpenGL開発が出来る環境を構築

昨日はUbuntu 18.04 LTSに.NET Core SDKをインストールしました。

本日は、この環境へVisual Studio Code と OpenTK.NETCoreをインストールしていきます。

目的は、Linux/Windows/Mac共通で、C#によりOpenGL開発が出来る環境を構築することです。

Ubuntuで構築していますが、今回構築した環境で書いたC#コードはWindowsやMacでも動くはずです。たぶん。動くはずだ。動くといいなあぁ。動かないかなぁ(希望)

1.https://code.visualstudio.com/downloadからVisual Studio Codeをダウンロードします。Linux(.deb)を選びます。

2.端末から以下を実行してVisual Studio Codeをインストールします。


sudo dpkg -i <ダウンロードしたファイル>.deb
sudo apt-get install -f # Install dependencies

3.端末から以下を実行してVisual Studio Code を立ち上げます。


code .

4.C#のプラグインをインストール

左側に並んでいる5個のアイコンのうち、一番下の「拡張機能」をクリックします。(Ctrl+Shift+Xでも可)
“C#”と打ち、表示された「C# for Visual Studio Code (powered by OmniSharp) Microsoft」をインストールします。

5.nugetをインストール

同じく「拡張機能」で “nuget” と打ちます。表示された「NuGet Package Manager」をインストールします

6.OpenTK.NETCoreをインストール

Ctrl+Shift+Pを押して “nuget” と打ちます。リストから「NuGet Package Manager: Add Package」を選択します。
続いて “OpenTK” と打ってリターンキーを押下します。表示されたリストから「OpenTK.NETCore」を選択します。すると、インストール可能なバージョンリストが表示されるので選びます。特に理由がなければいちばん新しいバージョンを選びます。

7.さあ!C#でOpenGL開発が可能な環境が出来ました!作ったコードはWindowsでもMacでも動くよ!

        *'“・* 。 
        |     `*。 
       ,。∩      *  
      + (´・ω・`) *。+゚ 
      `*。 ヽ、  つ *゚* 
       `・+。*・' ゚⊃ +゚ 
       ☆   ∪~ 。*゚ 
        `・+。*・ ゚ 

たぶんね!次回以降は実際にOpenGLのコードを書いて、そのコードがWindows/Macでも動くか検証していきます。

Ubuntu 18.04 LTS への.NET Core SDKインストール方法

Ubuntu 18.04 LTSが出たばかりで.NET Core SDKのインストール方法が公式に載ってなかったので、メモっときます。


sudo apt-key adv --keyserver packages.microsoft.com --recv-keys EB3E94ADBE1229CF

sudo apt-key adv --keyserver packages.microsoft.com --recv-keys 52E16F86FEE04B979B07E28DB02C46DF417A0893

sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-bionic-prod bionic main" > /etc/apt/sources.list.d/dotnetdev.list'

sudo apt-get update

sudo apt-get install dotnet-sdk-2.1.105 

以下、動作確認用です。プロジェクト用のディレクトリを作成して、その中で実行します。”Hello World!”と表示されれば成功です。


dotnet new console

dotnet run

((⊂(`ω´∩) しゅっしゅっ

2018/5/19追記:

公式のインストール手順出ました。

Register Microsoft key and feed


$ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg
$ sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
$ wget -q https://packages.microsoft.com/config/ubuntu/18.04/prod.list 
$ sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list

Install .NET SDK


$ sudo apt-get install apt-transport-https
$ sudo apt-get update
$ sudo apt-get install dotnet-sdk-2.1.200

macでのmp4動画の画面サイズ変更

開発者向け開発メモです。

AppPreviewの5.5インチiPhoneの動画をffmpegで4.7インチの動画から作る方法です。
普通にsオプション使うと画面サイズが思い通りにならず、1079×1920になってしまいます。

以下のようにすると、きちんと1080×1920になります。

ffmpeg -i catama4.7.mp4 -vf scale=1080×1920,setsar=1 catama5.5.mp4

最速でAppStore用の動画を作成する方法

前提

・ffmpegインストール済み
・実機あり(iPhone/iPad)
・macOS Sierra バージョン10.12.6

手順1

iPhone/iPadをmacに接続し、QuickTime Playerを立ち上げ、「ファイル」「新規ムービー収録」を選択。録画ボタンの右のメニューからカメラやマイクをiPhone/iPadに切り替える。

手順2

録画ボタンを押し、作成したアプリを動作させて動画を保存する。
(30秒以内。30秒を超えると、30秒以下になるよう動画を編集する必要あり)

手順3

fpsを30に落とすため、ターミナルで以下を実行する。fpsを落とした動画を、iTunesConnectでアップロードすれば終わり。

ffmpeg -i src.mov -crf 20 -r 30 dest.mov

-iオプションで、手順3で作成した動画を指定します。
-crfオプションで画質を指定します。
-rオプションでfpsを指定します。

5.5インチ向けにサイズ変更する場合

ffmpeg -i src.mov -crf 20 -r 30 -s 1080×1920 dest.mov

4.7インチ向けにサイズ変更する場合

ffmpeg -i src.mov -crf 20 -r 30 -s 750×1334 dest.mov

4インチ向けにサイズ変更する場合

ffmpeg -i src.mov -crf 20 -r 30 -s 640×1136 dest.mov