【Visual Studio Code】コードフォーマッタ Prettierを使う方法

Pretterで何ができるか?

コードのインデントや改行、セミコロンの有無などのフォーマットをファイル保存時に自動で行います。問題があるコードではエラー表示をしてくれます。

エラー時の表示
続きを読む

iOSでvideoタグの動画を自動再生する方法

iOSのSafariでvideoタグで指定した動画を自動再生させる方法をメモしておきます。

<video src="ビデオファイルのパス" autoplay playsinline muted loop>
<img src="画像ファイルのパス" alt="動画を表示しない時の画像">
</video>

 ビデオ内のオーディオデータが無い、またはオプション指定でmutedにしていないと自動再生できないようです。 

【openFrameworks】macOS High Sierraでプログラムをビルドするときにエラーが出る場合の対策

openFrameworksのプログラムをmacOS High Sierraでビルドしようとしたらエラーが出たので原因を調べてみました。
ちなみにプログラムはSierraで制作したものです。

Showing Recent Messages
:-1: The i386 architecture is deprecated. You should update your ARCHS build setting to remove the i386 architecture. (in target 'openFrameworks')

High Sierraから64bitのプログラムしか作れなくなっているようでそれが原因でエラーが出ているようでした。

修正箇所

BuildSettings

Architectureが64bit – intelになっていることを確認します。
Architecture

CoreOF.xcconfig

次にlibs/openFrameworksCompiled/project/osx/CoreOF.xcconfigを書き換えます。
書き換え箇所は以下を参考にしました。
github
この修正を適用すると無事にビルドできました。参考までに以下にも修正箇所を掲載しておきます。

VLID_ARCHSとOF_CORE_FRAMEWORKSの項目を修正します。

VALID_ARCHS = x86_64
OF_CORE_FRAMEWORKS = -framework Accelerate -framework AGL -framework AppKit -framework ApplicationServices -framework AudioToolbox -framework AVFoundation -framework Cocoa -framework CoreAudio -framework CoreFoundation -framework CoreMedia -framework CoreServices -framework CoreVideo -framework IOKit -framework OpenGL -framework QuartzCore -framework QTKit -framework Security -framework LDAP

【openFrameworks】ofTrueTypeFontで日本語のフォントを読み込む方法

openFrameworks v0.10.0でofTrueTypeFontを使って日本語のフォントを読み込む方法です。

ofApp.hにofTrueTypeFontのインスタンスを設定します。

ofTrueTypeFont text;

続きを読む

openFrameworks v0.10.0で画面サイズを設定できない場合

ofGLFWWindowSettings s;

のようにofGLFWWindowSettingsで作った画面のサイズを指定する方法です。

以下のように書くとエラーが出ます

s.width  = 1920;  //直接書き換えられない
s.height = 1080;  //直接書き換えられない

エラーメッセージは以下のようなものです。
‘height’ is a protected member of ‘ofWindowSettings’

直接書き換えるなということなので

以下のように書き換えます

s.setSize(1920, 1080);

v0.9.8では個別に書き換えられたのですが、v0.10.0からできなくなったようです。

iPhoneのSafariからファイルをアップしたときにPHPのTMP_NAMEがなくなる問題

iPhoneのSafariからファイルをアップロードした際にPHPで指定したTMP_NAMEが空になってしまっていることがありました。
この現象について調査したところ、stackoverflowで同様の現象に関する質問がありました。
続きを読む

Raspberry PI 3 + openFrameworksでマウスポインタが動かない時に確認すること

Raspberry PI 3にopenFrameworks(0.9.8)を入れてサンプルプログラムを動かしたのですが、マウスを使って操作するプログラムでマウスポインタが反応しない事象が発生したので、原因を調べてみました。
続きを読む

Raspberry PI 3からHDMI出力されないのを修正する方法

Raspberry PI 3のHDMI出力に4Kディスプレイをつないだ所、起動しても映像が出力されませんでした。
調べた結果、公式のフォーラムに情報がありました
続きを読む

【Mac】Python 3.6.0 で Matplotlib が動かない時にチェックした点

HomebrewでMacにPython 3.6.0を入れて以下のコードでMatplotlibを読み込もうとしたところ

import matplotlib.pyplot as pet

以下のようなエラーが出ました。ちなみに依存しているライブラリは全部インストール済みの状態です。
Traceback (most recent call last):
File "", line 1, in
File "/Users/(ユーザー名)/.pyenv/versions/3.6.0/lib/python3.6/site-packages/matplotlib/pyplot.py", line 115, in
_backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
File "/Users/(ユーザー名)/.pyenv/versions/3.6.0/lib/python3.6/site-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup
globals(),locals(),[backend_name],0)
File "/Users/(ユーザー名)/.pyenv/versions/3.6.0/lib/python3.6/site-packages/matplotlib/backends/backend_macosx.py", line 19, in
from matplotlib.backends import _macosx
RuntimeError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. See the Python documentation for more information on installing Python as a framework on Mac OS X. Please either reinstall Python as a framework, or try one of the other backends. If you are using (Ana)Conda please install python.app and replace the use of 'python' with 'pythonw'. See 'Working with Matplotlib on OSX' in the Matplotlib FAQ for more information.

バックエンドの設定に問題があるということで、以下のコマンドでmatplotlibのバックエンド設定が書かれたファイルのパスを調べ

$python -c "import matplotlib;print(matplotlib.matplotlib_fname())"

エディタで該当箇所を編集しました。macosxとなっているところをコメントアウトまたは削除してTkaggを指定します。

#backend : macosx
backend : Tkagg #←これに書き換える

これで以下のようなグラフを出力できるようになりました。

Elgato Game Capture HD60でMacの画面をビデオ録画する

Elgato Game Capture HD60
openFrameworksで作った映像をキャプチャーするためにElgato Game Capture HD60を導入しました。
続きを読む