プログラミング経験は、エクセルVBA程度です。
ネットで、Rubyでの描画を調べていたところ、下記のソースを発見。
cairoなるものが必要なようで、調べながら環境を整えてみました。
最初はターミナルから実行するとエラーが出ていましたが、現在はエラーが出ません。
環境は、MacOSX ruby 2.0.0p451
他の簡単なプログラム(helloworld表示など)は問題なく動きます。
エラーが出ずに実行できるということは、
画像の出力だけがうまく行っていないのでしょうか?
お知恵を頂けたら幸いです。
※以下、動かしたいプログラム(ネット上で発見したものです)
#!/usr/bin/env ruby
require 'cairo'
format = Cairo::FORMAT_ARGB32
width = 300
height = 200
radius = height / 3
surface = Cairo::ImageSurface.new(format, width, height)
context = Cairo::Context.new(surface)
context.set_source_rgb(1, 1, 1)
context.rectangle(0, 0, width, height)
context.fill
context.set_source_rgb(1, 0, 0)
context.arc(width / 2, height / 2, radius, 0, 2 * Math::PI)
context.fill
surface.write_to_png("hinomaru.png")
No.4ベストアンサー
- 回答日時:
クリーンインストールではなくて、homebrewでインストールした部分だけの再インストールです。
私自身はhomebrewを一度インストールしたことが有りますが、私の目的には問題があったので消してしまいました。
従ってほとんどhomebrewについては理解できていません。
以前他の質問で回答したのですが、その時の原因がhomebrewで依存関係で必要なパッケージがインストールされていなくて動かないということでした。homebrewはなるべくシステムでインストールされているものを使うこと信条としているとのことで、たまたま依存パッケージの指定を忘れていたのかなと思ったりしていました。そのようなことが今回も有りそうな感じがしています。
インターネットで同じようなことがhomebrewでおこってるのか調べて対処する必要があるかもしれません。
MacPortsやFinkも同じようなことが起こりえるのですが、これらは逆にシステムでインストールされているものを信用しないという信条です。どちらが良いかは分かりませんが。
解決方法としては、homebrewで同じようなことがおこっていないか、その対処法をしらべること。
もう一つは、コンパイル済みのバイナリファイルをインストールしているなら、ソースファイルからコンパイルしてインストールする指定がhomebrewでできるのでしたら、それをやってみる方法です。これだと依存パッケージが抜けている場合にはエラーでインストールが止まってくれるはずです。バイナリファイルの場合は依存パッケージがなくても、パッケージ作成者が指定を忘れていてもとりあえずはインストールが成功するはずですので、実行するまで分からないことになりそうです。
その前に、homebrewでインストールされているパッケージを最新の状態にアッデートすれば解決するかも知れません。あくまでも作成者が気がついていたらですが。
う~む。わかったようなわからないような・・・。
当方の知識が少なすぎて、なんとなくしか理解できませんので、ちょっと勉強してみます。
教えて頂いた回答を元にして、アレコレ学習、試行してみます。
なんども御丁寧に有難うございました!
No.3
- 回答日時:
>unable to convert "\xCA" from ASCII-8BIT to UTF-8 for lib/cairo.bundle, skipping
このあたりはドキュメント関係のはずで、実行には関係ないと思いますので、無視してください。
rubyで実行して何かエラーメッセージがでませんか?
どうもcairoが依存するライブラリのインストールがうまできていない可能性が高いと思います。
homebrewで依存するライブラリをインストールするときにエラーを見逃していませんか?
ひとつひとつインストールし直すのも1つの方法ですが、依存ライブラリはかなり入り組んでいるので。
全部消してインストールをやり直すのは早いかもしれません。homebrewは掃除するのも大変ですが。
この回答への補足
何度も御丁寧に有難うございます!
ruby実行時のエラーは無いです。
他の単純なプログラムは普通に動きます。
hinomaru.rbも、エラーは出ません。
が、画像の出力が無いだけです。
というか、実行前となにも変わらない状態といったほうが適切でしょうか・・・。
cairoのインストールは過去に何度もエラーが出ました・・・。
ただ、先日教えて頂いた方法で、現在はうまくインストールできているように思われます。
全部消して再インストールですか・・・。
それも当方にはハードル高そうですね。
クリーンインストール(?)の方法も調べつつ、現状で動く方法も調べてみます・・・。
No.2
- 回答日時:
お礼欄に書かれているメッセージ通りです。
どちらも正常にインストールできていません。
まず、下のcairoの方ですが、
https://xquartz.macosforge.org
からxquartzを入手、イントールしてからもう一度やってみてください。
rubygemsの方は、書き込む権限がないということです。
sudo gem install cairo
としてみてください。
この回答への補足
有難うございます!
xquartzをインストールしました。
その後、sudo gem install cairoもやりました。
これまでとちがう表示が出て、いかにも「動いている」感じです!
ちなみに、sudo gem install cairoのあとは、以下のように表示されました。
Building native extensions. This could take a while...
Successfully installed cairo-1.12.9
Parsing documentation for cairo-1.12.9
unable to convert "\xCA" from ASCII-8BIT to UTF-8 for lib/cairo.bundle, skipping
Installing ri documentation for cairo-1.12.9
1 gem installed
ただ、実行してみると、やっぱり画像は作成されません。
再起動してから試みてもダメです・・・。
rubyのファイルはデスクトップのrubyフォルダに入れて有ります。
ターミナルでは、cd desktop/ruby としてから、ruby hinomaru.rb として実行しています。
なぜ出来ないのでしょうか?
No.1
- 回答日時:
こちらで質問欄のプログラムをそのまま実行してみましたがhinomaru.pngが正常に出来ていましたよ。
カレントディレクトリにファイルができているはずですが、もう一度確認してみてください。
こちらは
OSX 10.9.4
MacPortsでインストールした
ruby 2.0.0p481 (2014-05-08 revision 45883) [x86_64-darwin13]
cairo @1.12.16_2+x11
rubygemsでインストルした
cairo (1.12.9)
です。
早速のご回答、有難うございます。
ただ、やっぱりうまく行かず、カレントディレクトリへのファイル作成もされません。
cairoのインストールが出来ていないのではと、コンソールから、
gem install cairoを実行すると以下の様なエラーが出ます。
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
ただ、Macintosh HD>ライブラリ>Ruby>Gems>2.0.0>gems>cairo-1.12.9と有りますので、
cairoは使える状態で入っている(?)のかと思われます・・・。
(そもそも、その認識が違うのでしょうか?)
ちなみに、MacPortsではなく、Homebrewが入っています。
コンソールからbrew install cairoとしても以下のエラーが出ます・・・。
cairo: Unsatisfied dependency: XQuartz 0.0.0
Homebrew does not package XQuartz. Installers may be found at:
https://xquartz.macosforge.org
Error: An unsatisfied requirement failed this build.
どうしたもんでしょうか?
コンソールからのインストール実行、そもそもの基礎がないので、ネットで調べながらアレコレやっている状況です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- その他(プログラミング・Web制作) Pythonによる物理の斜方投射の位置座標表示について 2 2023/06/05 12:46
- その他(プログラミング・Web制作) Pythonにおける物理のシミュレーションでの単位変換について 2 2023/06/02 17:11
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- その他(プログラミング・Web制作) ボールの動きがスムーズに動いてかつ目盛り線描画を維持するためには 4 2023/05/31 10:01
- その他(プログラミング・Web制作) 物理の斜方投射で目盛りに数値を入れたい 2 2023/05/27 06:32
- その他(プログラミング・Web制作) 物理の斜方投射の目盛り線とx軸、y軸の追加について 3 2023/05/26 21:11
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
- PHP 共通の処理をまとめる方法がわからないのでアドバイスお願いします。 1 2022/12/19 20:20
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows Storeを使わずに付箋を...
-
LaTeXマクロのemathを使っても...
-
iniファイル読み込み失敗という...
-
.NET Frameworkがコントロール...
-
AnyDVDとレジストリKey
-
Animation Composer 3について
-
UltraVNCでマルチモニタ環境で...
-
Sublime Text 2 インストールエ...
-
移行PCにDockerがインストール...
-
イラストレーターで数式を表現...
-
VMware player15にwindows98SE...
-
adobe creative suite4がインス...
-
TeX のfigure環境の中のlabelが...
-
PDFCreatorで*.pdfができない
-
android-sdkを PCに入れましたが
-
SIDとSERVICE_NAMEの違いとは?
-
東方紅魔郷
-
倒産した18禁ゲーム会社のパ...
-
住所コード11桁の住所データ...
-
「ORA-6413 接続がオープンして...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
.NET Frameworkがコントロール...
-
Windows Storeを使わずに付箋を...
-
WiFi環境があればTikTokLiteは...
-
5名間でのスケジュール共有ツー...
-
AnyDVDとレジストリKey
-
移行PCにDockerがインストール...
-
iniファイル読み込み失敗という...
-
いきなりPDF professional3に...
-
イラストレーターで数式を表現...
-
PCゲーム Hard☆Love☆Life
-
一太郎ダウンロード版と箱に入...
-
e-photo
-
VNCについて
-
AutoCAD lt 2006インストールで...
-
ファイルの暗号化でフリーソフ...
-
Windowsインストーラーmsiファ...
-
UltraVNCでマルチモニタ環境で...
-
ドミノサーバーって?
-
HULFT6のハングアップ対応方法...
-
LaTeXマクロのemathを使っても...
おすすめ情報