ニコニコ動画マイリスト

2020年4月25日土曜日

インストーラを使わずにC言語からPythonを呼び出す

以前、エンドユーザーにPythonのインストール作業をさせずに
PythonのDLL群を使ってPythonコードを実行するような
ペイントソフト用のプラグインを作っていて
嵌まったので、ノート替わりにやったことを公開します。

■背景
 私が公開しているフリーソフトに
 Pythonを使っているソースコードをパクって 参考にして
 プラグインを作成しようとしたのですが
 本体がインストーラ不要であることがひとつの長所なのに
 「プラグインのためにPythonのインストーラを使わせるなんて
   言語道断」…という、わがままによって
 エンドユーザーにPythonのインストーラを使わせずに
 Pythonのコードを自前のプログラムから実行する方法を模索しました。

■結論
 Windows環境であれば、以下、5点を実施すれば可能です。
  1. Portable Pythonをダウンロードする
  2. ダウンロードしたPortalbe PythonのConsole-Launcher
    を起動して「python -m pip install --upgrade pip」しておく
  3. 必要なPythonのライブラリを「python -m pip install ○○」
    で使えるようにしておく
  4. 配布物にPortable PythonのAppフォルダの中身を追加する
  5. C言語のソースコードでPy_Initialize()する前に
    setenv関数等で以下の環境変数を設定する
    PATH、PYTHONPATH、PYTHONSTARTUP
    (この環境変数は呼び出し元のプロセスの中でのみ有効ですので
     ユーザーの環境変数を汚しません)
あとはPython のC APIリファレンス通りにやれば
 ちゃんと動く …ハズ。

■手順詳細
 1-1. Portable Pythonのサイト(Sourceforge)から
    使いたいバージョンのPythonをダウンロードします。
    (Portable PythonはUSBメモリに入れて持ち歩くことを
     想定したものなのでexe形式の解凍実行ファイルを
     ダウンロードすることになります)
 1-2. ダウンロードしたexeファイルを実行して
    任意のフォルダに解凍します。
 2-1. 解凍されたフォルダのConsole-Launcher○○を起動する。
    (○○は64bit用なら64、32bit用なら86です)
 2-2. コマンド「python -m pip install --upgrade pip」
    でpipを最新の状態にしておく。
 3. コマンド「python -m pip install ○○」で
    必要なライブラリをインストールしておく。
    (例えばnumpyなら
     「python -m pip install numpy」になります)
   これで、配布に必要なファイルが揃います。
 4. 配布時にはPortable Pythonを解凍したフォルダにある
  「App\Python」フォルダも一緒に配布する必要があります。
 5. Python のC API経由でPythonのスクリプトを実行する為には
   Pythonの初期化時に必要なライブラリをPYTHONPATHに
   設定されたフォルダが参照されますので
   Py_Initialize (またはPy_InitializeEx)を呼び出す前に
   PYTHONPATHの値を設定する必要があります。
 5-1. PYTHONPATHには次の値を設定します。
   私は設定にsetenv()関数を使いました。
   (1) PATHに Portable Pythonのフォルダ内の
    「Python」フォルダのパスを追加
   (2) PYTHONPATHにPortable Pythonのフォルダ内の
    「Python」フォルダのパスを追加
   (3) PYTHONPATHにPortable Pythonのフォルダ内の
    「Python\DLLs」フォルダのパスを追加
   (4) PYTHONPATHにPortable Pythonのフォルダ内の
    「Python\Lib」フォルダのパスを追加
   (5) PYTHONPATHにPortale Pythonのフォルダ内の
    「Python\Lib\site-packages」フォルダのパスを追加
   (6) PYTHONSTARTUPにPortable Pythonのフォルダ内の
    「Python\Lib\ppp.py」ファイルのパスを追加
  …6つ中、4つがPYTHONPATHですね…
 5-2. C言語で書いた関数を呼び出したい場合は
   PyMODINIT_FUNC 関数名(void)の関数を作成し、
   その中で
   (1) static struct PyMethodDef 配列変数名[]で
     {"Pythonで呼び出すときの関数名", C言語の関数ポインタ,
                    METH_VARARGS, "関数のヘルプ文字列"}
     の構造体配列を作成
   (2) static struct PyModuleDef 変数名で
     {PyModuleDef_HEAD_INIT, "適当な文字列",
                    NULL, -1, (1)の変数}の構造体変数を作成
   (3) import_array() 関数を呼び出す。
     (NumPyを使わない場合は不要。
      これをしないとC言語で書いたPython用関数の中で
      PyArg_ParseTuple関数にPyArray_TYPEを指定した際に
      クラッシュする)
   (4) return PyModule_Create(引数は(2)の変数のアドレス)
  の処理を行います。 (1)、(2)の変数はstaticなローカル変数の代わりに
  グローバル変数でもO.K.
 5-3. Py_Initialize()関数を呼び出す。

 …あとはPyObject_CallObject関数やPyObject_CallMethod関数などを使えば
 Pythonの中のインスタンス作成やメソッド呼び出しを行えます。
 5. 以降の内容は「C言語からPythonの呼び出し」等で検索して出てきた
 結果を参考にした方が良いかもしれませんね。

説明は以上です。何かご質問などありましたら、
お気軽にコメントまでどうぞ。

2019年2月24日日曜日

KABURAGI 1.4.3.0公開

キーボードの操作で順繰りにブラシを変更する機能を追加しました。
(例:キー割り当てを「c」にした場合、
 キーボードの「c」を押すたびに
 鉛筆→消しゴム→バケツ→鉛筆... とループしてブラシ選択できます)
ペンのショートカットキーを割り当てると便利です。
「編集」→「環境設定」で
「ブラシセット」を選択することでループ内容の変更ができます。
(コミックマーケット C95で公開したものになります)

注意!いまだに未完成故、

エラーによる強制終了があります。

こまめな保存と「編集」→「環境設定」

からのバックアップ設定をお願いします。

ダウンロード
日本語版
32bit版→http://firestorage.jp/download/ab6b7650d0da3e7dd7536f7bfd676ffc84b27f08
32bit KABURAGI.dll不要版→http://firestorage.jp/download/ed269c5e70c1a83be6c661101f87f7d551f855b4
64bit版→http://firestorage.jp/download/61491bdf958d49ef008421060b343d244c9e2aa0

English version
x86→http://firestorage.jp/download/7fe689aa197e52574ec44905a9a3764a004c3ca2
x64→http://firestorage.jp/download/f5debd9a265483990c7e78d28f9b9050c1d36bf9

2018年8月16日木曜日

KABURAGI 4k対応版公開 (C94頒付ver)

C94 (2018年の夏コミ)で配布した4k対応版を公開します。
(配布していた一部プラグインは付属しませんのでご注意ください)

注意!いまだに未完成故、

エラーによる強制終了があります。

こまめな保存と「編集」→「環境設定」

からのバックアップ設定をお願いします。

ダウンロード
日本語版

2018年7月1日日曜日

XCFのサムネイルをエクスプローラーに表示するDLL作ってた

現状、64bitのみ。かつ、インデックスカラーには非対応です。
あと、どんなバグが起こっても責任は負いかねます...

download
http://firestorage.jp/download/0b4617a31a0f081bb109868ead90aae4785c50e8

2017年3月14日火曜日

「編集」→「環境設定」で
レイヤーウィンドウのスクロールバーを左側に表示する
オプションを 追加しました。
(その他、細かい点を修正しました)

注意!いまだに未完成故、

エラーによる強制終了があります。

こまめな保存と「編集」→「環境設定」

からのバックアップ設定をお願いします。

ダウンロード
日本語版
32bit版→http://firestorage.jp/download/118318aff5dda1fc045dd3bca0d163cbaa5b19b9
32bit KABURAGI.dll不要版→http://firestorage.jp/download/19e88db463de58be23297021a9e2514f15170c15
64bit版→http://firestorage.jp/download/dcfde8a29984cfe55d333eba5fe6dd27b9a15e93

English version
x86→http://firestorage.jp/download/1adcccdf42d81e190ae17826e9e36221d5a48178
x64→http://firestorage.jp/download/4046a3bc36cb7bd2d8f3240ea590866095193493

 Ubuntuでのインストール方法
https://github.com/umibps/KABURAGI/wiki/Ubuntu%E3%81%A7%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95

How to Install on Ubuntu
 https://github.com/umibps/KABURAGI/wiki/How-to-Install-on-Ubuntu

2016年2月7日日曜日

KABURAGI Ubuntu版を更新

Ubuntu用のtar ballを更新しました。
(makefile等のファイルを修正しました)

注意!いまだに未完成故、

エラーによる強制終了があります。

こまめな保存と「編集」→「環境設定」

からのバックアップ設定をお願いします。


Ubuntuでのインストール方法
https://github.com/umibps/KABURAGI/wiki/Ubuntu%E3%81%A7%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95

How to Install on Ubuntu
 https://github.com/umibps/KABURAGI/wiki/How-to-Install-on-Ubuntu

2016年1月24日日曜日

ICCプロファイル廻りのバグを修正しました。
(修正パッチを作成いただきました、 やんま ま様、ありがとうございました)

注意!いまだに未完成故、

エラーによる強制終了があります。

こまめな保存と「編集」→「環境設定」

からのバックアップ設定をお願いします。

ダウンロード
日本語版
32bit版→http://xfs.jp/pY0gq
32bit KABURAGI.dll不要版→http://xfs.jp/gyChb
64bit版→http://xfs.jp/txzcA

English version
x86→http://xfs.jp/3EqIU
x64→http://xfs.jp/YL4JM

Ubuntuでのインストール方法
https://github.com/umibps/KABURAGI/wiki/Ubuntu%E3%81%A7%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95

How to Install on Ubuntu
 https://github.com/umibps/KABURAGI/wiki/How-to-Install-on-Ubuntu

プラグインのソースコード (Plug-in's source code)
http://xfs.jp/to2QK 

2015年9月18日金曜日

KABURAGI マンガのコマ枠作成プラグイン等 機能追加

下記の機能を追加しました。

・新規作成時にプリセットを選択・保存できるようにした
・3Dモデリングレイヤーで直方体を使えるようにした
・3Dモデリングレイヤーで円柱を使えるようにした
・ベクトルレイヤーで四角、菱形、楕円 (+ Luaスクリプト) を使えるようにした
・3Dモデリングレイヤーの縦横比をキャンバスに合わせるようにした
・テキストレイヤーのメモリリークを改善

注意!いまだに未完成故、

エラーによる強制終了があります。

こまめな保存と「編集」→「環境設定」

からのバックアップ設定をお願いします。

ダウンロード
日本語版
32bit版→http://xfs.jp/ptJ91
32bit KABURAGI.dll不要版→http://xfs.jp/Rtpd6
64bit版→http://xfs.jp/U26HU

English version
x86→http://xfs.jp/nynVz
x64→http://xfs.jp/D4LEf

Ubuntuでのインストール方法
https://github.com/umibps/KABURAGI/wiki/Ubuntu%E3%81%A7%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95

How to Install on Ubuntu
 https://github.com/umibps/KABURAGI/wiki/How-to-Install-on-Ubuntu

プラグインのソースコード (Plug-in's source code)
http://xfs.jp/to2QK 

2015年5月25日月曜日

KABURAGI Ubuntu版更新 & フィルター追加中・・・

Ubuntu版を最新版に更新しました。
(吹き出し機能の追加)

フィルターに
 ・ガウシアンぼかし
 ・レベル補正
 ・トーンカーブ
を追加しました。
 …が、調整中なので時折、イラストの色が崩壊します…

注意!いまだに未完成故、

エラーによる強制終了があります。

こまめな保存と「編集」→「環境設定」

からのバックアップ設定をお願いします。

ダウンロード
日本語版
32bit版→http://xfs.jp/eDT3A
32bit KABURAGI.dll不要版→http://xfs.jp/4ndU3
64bit版→http://xfs.jp/pc7p4

English version
x86→http://xfs.jp/AqdIR
x64→http://xfs.jp/WVwng

    Ubuntuでのインストール方法
https://github.com/umibps/KABURAGI/wiki/Ubuntu%E3%81%A7%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95

How to Install on Ubuntu
 https://github.com/umibps/KABURAGI/wiki/How-to-Install-on-Ubuntu


2015年2月26日木曜日

KABURAGI 吹き出し機能追加

テキストレイヤーに吹き出し機能を追加しました。
ついでに一部のフィルターをOpenMPに対応、
 カスタムブラシにスポイトブラシを追加しました。

   Ubuntuでのインストール方法
https://github.com/umibps/KABURAGI/wiki/Ubuntu%E3%81%A7%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95

How to Install on Ubuntu
 https://github.com/umibps/KABURAGI/wiki/How-to-Install-on-Ubuntu






注意!いまだに未完成故、

エラーによる強制終了があります。

こまめな保存と「編集」→「環境設定」

からのバックアップ設定をお願いします。

ダウンロード
日本語版
32bit版→http://xfs.jp/2j1H2
32bit KABURAGI.dll不要版→http://xfs.jp/SV387
64bit版→http://xfs.jp/Yc21z

English version
x86→http://xfs.jp/zpo5c
x64→http://xfs.jp/vPNs1


プラグインのソースコード (Plug-in's source)
x86→http://xfs.jp/C1EBA
x64→http://xfs.jp/CXwrC

2015年2月1日日曜日

KABURAGI OpenMP対応 & 新ブラシ追加

OpenMP対応により一部のブラシの動作を高速化しました。
(もしも上手く動かない場合はブログまたは動画へコメントお願いします。
 OpenMP非対応版を作成します)

また、ブラシを追加しました。
使用する場合は通常レイヤー使用中に
ブラシテーブルの空のボタンをクリックして
「カスタムブラシ」を選んでください。



上の画像の操作の後、
初期設定のダイアログで「OK」を選択。
その後、KABURAGI(またはMIKADO)を
再起動するとブラシが追加されます。

2/6 追記

 バッファオーバーランによるバグを修正しました。

 下記のリンクからダウンロードしてください。


   Ubuntuでのインストール方法
https://github.com/umibps/KABURAGI/wiki/Ubuntu%E3%81%A7%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95

How to Install on Ubuntu
 https://github.com/umibps/KABURAGI/wiki/How-to-Install-on-Ubuntu





注意!いまだに未完成故、

エラーによる強制終了があります。

こまめな保存と「編集」→「環境設定」

からのバックアップ設定をお願いします。

ダウンロード
日本語版
32bit版→http://xfs.jp/He3WI
32bit KABURAGI.dll不要版→http://xfs.jp/9DsKY
64bit版→http://xfs.jp/oQztQ

English version
x86→http://xfs.jp/TFKy5
x64→http://xfs.jp/mkijs

プラグインのソースコード (Plug-in's source)
x86→http://xfs.jp/C1EBA
x64→http://xfs.jp/CXwrC

2014年12月20日土曜日

KABURAGI - 合成ブラシ追加、Ubuntu版にプラグイン機能追加

合成画像ブラシを追加しました。
Ubuntuでプラグインが使えるようにしました。

  Ubuntuでのインストール方法
https://github.com/umibps/KABURAGI/wiki/Ubuntu%E3%81%A7%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95

How to Install on Ubuntu
 https://github.com/umibps/KABURAGI/wiki/How-to-Install-on-Ubuntu




注意!いまだに未完成故、

エラーによる強制終了があります。

こまめな保存と「編集」→「環境設定」

からのバックアップ設定をお願いします。

ダウンロード
日本語版
32bit版→http://xfs.jp/2vWJV
32bit KABURAGI.dll不要版→http://xfs.jp/ZbtZb
64bit版→http://xfs.jp/gBxeI

English version
x86→http://xfs.jp/RISzf
x64→http://xfs.jp/M7ZMY

プラグインのソースコード (Plug-in's source)
x86→http://xfs.jp/C1EBA
x64→http://xfs.jp/CXwrC

2014年10月19日日曜日

【大遅刻】リツ誕生祭2014

今回、更新は無いに等しいです。

誰かOpenMP有効でビルドしたら
キャンバスがマウスに反応しない
理由を教えて下さい。お願いします。


  Ubuntuでのインストール方法
https://github.com/umibps/KABURAGI/wiki/Ubuntu%E3%81%A7%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95

How to Install on Ubuntu
 https://github.com/umibps/KABURAGI/wiki/How-to-Install-on-Ubuntu



注意!いまだに未完成故、

エラーによる強制終了があります。

こまめな保存と「編集」→「環境設定」

からのバックアップ設定をお願いします。

ダウンロード
日本語版
32bit版→http://xfs.jp/v6qk7
32bit KABURAGI.dll不要版→http://xfs.jp/C8fdW
64bit版→http://xfs.jp/Ngc14

English version
x86→http://xfs.jp/wv5X7
x64→http://xfs.jp/z7PK0

プラグインのソースコード (Plug-in's source)
x86→http://xfs.jp/C1EBA
x64→http://xfs.jp/CXwrC

2014年10月7日火曜日

KABURAGI プラグインブラシ機能追加

プラグインを利用してのブラシの追加に対応しました。
その他、修正多数。


  Ubuntuでのインストール方法
https://github.com/umibps/KABURAGI/wiki/Ubuntu%E3%81%A7%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95

How to Install on Ubuntu
 https://github.com/umibps/KABURAGI/wiki/How-to-Install-on-Ubuntu


注意!いまだに未完成故(更新停止するけど)、

エラーによる強制終了があります。

こまめな保存と「編集」→「環境設定」

からのバックアップ設定をお願いします。

ダウンロード
日本語版
32bit版→http://xfs.jp/rZKkY
64bit版→http://xfs.jp/rxSCj

English version
x86→http://xfs.jp/1y9ns
x64→http://xfs.jp/fh47c

2014年8月24日日曜日

KABURAGI マウス処理の見直し、フィルター追加、プラグイン機能追加

しばらく間が空いてしまいましたが、
そこそこ機能を追加しました。

ダウンロードはページの下から

1.マウスの処理見直し
 これまでは↓の画像のような
マウスだとカクカク




















 入力時の処理の見直しで↓の画像にまでは修正されました。















2.「雲」と「フラクタル」フィルターの追加
 「雲」フィルターはパーリンノイズを用い、
 雲のような模様をアクティブなレイヤーに描画します。
















 「フラクタル」フィルターはフラクタル図形を
 指定されたパラメータに沿ってアクティブな
 レイヤーに描画します。














3. プラグイン機能
 Windowsなら.dllや.exe、Linuxなら.soのファイルから
 Execute関数を呼び出して実行します。
 要望がありましたら、詳細なドキュメント整備します。
 

  Ubuntuでのインストール方法
https://github.com/umibps/KABURAGI/wiki/Ubuntu%E3%81%A7%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95

How to Install on Ubuntu
 https://github.com/umibps/KABURAGI/wiki/How-to-Install-on-Ubuntu

注意!いまだに未完成故(更新停止するけど)、

エラーによる強制終了があります。

こまめな保存と「編集」→「環境設定」

からのバックアップ設定をお願いします。

ダウンロード
日本語版
32bit版→http://xfs.jp/1jR1t
64bit版→http://xfs.jp/bmpQe

English version
x86→http://xfs.jp/fV9BQ
x64→http://xfs.jp/xKqh5

2014年6月29日日曜日

KABURAGI 3Dモデルデータの保存部分更新

MIKADO.exe使用中に3Dモデルレイヤーが
ある状態で保存を実行すると
保存ファイル中に3Dモデルのデータを書き込むように
変更しました。

その他、初期化ファイルの処理方法を変更しました。

Ubuntuでのインストール方法をGitHubのWikiに掲載しました。

Ubuntuでのインストール方法
https://github.com/umibps/KABURAGI/wiki/Ubuntu%E3%81%A7%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95

How to Install on Ubuntu
 https://github.com/umibps/KABURAGI/wiki/How-to-Install-on-Ubuntu

注意!いまだに未完成故(更新停止するけど)、

エラーによる強制終了があります。

こまめな保存と「編集」→「環境設定」

からのバックアップ設定をお願いします。

ダウンロード
日本語版
32bit版→http://xfs.jp/Itgdm
64bit版→http://xfs.jp/6e8eR

English version
x86→http://xfs.jp/EkdkR
x64→http://xfs.jp/qdpgG

GitHub→https://github.com/umibps/KABURAGI

2014年6月12日木曜日

KABURAGI レイヤーセット、MMD周り修正

動画へのコメントでご指摘頂いた点、
及びMMD周りの修正を行いました。

…更新停止? …何のことかな?

注意!いまだに未完成故(更新停止するけど)、

エラーによる強制終了があります。

こまめな保存と「編集」→「環境設定」

からのバックアップ設定をお願いします。

ダウンロード
日本語版
32bit版→http://xfs.jp/iWDSQ
64bit版→http://xfs.jp/eJIeN

English version
x86→http://xfs.jp/HITNg
x64→http://xfs.jp/IxTNV

GitHub→https://github.com/umibps/KABURAGI

2014年5月31日土曜日

KABURAGI / MIKADO 微更新及び更新停止のお知らせ

今回の更新点は
 ・AppData (Windows7の場合) の下にアプリケーションの
  初期化ファイルを作るようにした
 ・自由変形後に選択範囲も変形するようにした
 ・一部の.pmxファイルが読み込めない不具合を修正
です。

また、MIKADO.exeで3Dモデルの編集が出来ない場合に
MesaのOpenGL32.dllをGitHubに用意しました。
(ハードウェアレンダリング出来ないならソフトウェア
 レンダリングすればいいのでは?という考え)
「3Dモデルを編集」ボタンを押しても↓の画像













が表示されない方は 試してみてください。

=================================================

開発者であります、私の欲しい機能が
ひと通り揃ったので更新を一時的に停止します。
(決して私のモチベーションが低下したからでは
 …ない …と思います… たぶん)

注意!いまだに未完成故(更新停止するけど)、

エラーによる強制終了があります。

こまめな保存と「編集」→「環境設定」

からのバックアップ設定をお願いします。

ダウンロード
日本語版
32bit版→http://xfs.jp/TdBpc
64bit版→http://xfs.jp/JhK8M

English version
x86→http://xfs.jp/7CeeS
x64→http://xfs.jp/XThxD

GitHub→https://github.com/umibps/KABURAGI

2014年4月22日火曜日

KABURAGI ルーペモード追加、PMDモデル読み込み対応

いつもイラストを描きながら、
目とか細かいところを描く時に
もっとサクサク動作すればもっと描き込めるのに
と思っていた点を解消するため、
選択範囲を切り抜いて一時的な
キャンバスを作成する機能を追加しました。
(ルーペモード)

また、一部の.pmd形式のモデルの読み込みに対応しました。

注意!いまだに未完成故、

エラーによる強制終了があります。

こまめな保存と「編集」→「環境設定」

からのバックアップ設定をお願いします。

ダウンロード
日本語版
32bit版→http://xfs.jp/mRpyF
64bit版→http://xfs.jp/g5r62

English version
x86→http://xfs.jp/2Y4ZR
x64→http://xfs.jp/vgIHh