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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

1405閲覧

取得した画像のデータを新たに作成したTempFileに書き込みたい

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2018/11/22 08:09

#やりたいこと
お世話になります。
取得した画像のデータを新たに作成したTempFileに書き込みたいです。
下記のコードを実行した結果、writeする文章までは画像のコード(?)が取得できているのですが、writeされた方の内容を見ると、ただの数字となってしまいます。
同じコードで書くようにするにはどのようにすれば良いでしょうか?

#サンプルコード

test.rb

1require "open-uri" 2require "tempfile" 3tempfile = Tempfile.new("test").binmode 4sample_url = "http://arch.casio.jp/image/dc/images/fh20_gallery_pic04_b.jpg" 5image_body = open(sample_url).read 6p "image_body" 7p image_body 8tempfile_image = tempfile.write(image_body) 9p "tempfile_image" 10p tempfile_image

実行結果

terminal

1$ ruby test.rb 2"image_body" 3"\xFF...(省略) 4"tempfile_image" 54768130

参考にしたURL
https://stackoverflow.com/questions/18216187/write-stringio-to-tempfile

Ruby version
ruby 2.5.1

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

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

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

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

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

guest

回答1

0

ベストアンサー

readメソッドは読み込んだバッファを返しますが
writeメソッドは書き込んだ長さを返します。

"\xFF...(省略)が欲しいのであれば

rb

1require "open-uri" 2require "tempfile" 3tempfile = Tempfile.new("test").binmode 4sample_url = "http://arch.casio.jp/image/dc/images/fh20_gallery_pic04_b.jpg" 5image_body = open(sample_url).read 6p "image_body" 7p image_body 8tempfile.write(image_body) 9 10tempfile.rewind 11tempfile_image = tempfile.read 12 13p "tempfile_image" 14p tempfile_image

で、どうでしょうか?

投稿2018/11/22 08:22

asm

総合スコア15147

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

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

退会済みユーザー

退会済みユーザー

2018/11/22 08:26

取得できました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問