CurlでBinaryデータを画像表示 - Printable Version +- Curl Global Community (https://communities.curl.com) +-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1) +--- Forum: General Curl questions (https://communities.curl.com/forumdisplay.php?fid=2) +--- Thread: CurlでBinaryデータを画像表示 (/showthread.php?tid=1080) |
CurlでBinaryデータを画像表示 - rom - 04-30-2014 こんにちは! 今回DB上に保存されている画像データ(バイナリデータ)を取得し Curlのアプレット上で一覧表示したいと思っております! ・バイナリデータを画像に変換?する方法 が分からず、困っています・・・ ご教授宜しくお願いします! RE: CurlでBinaryデータを画像表示 - rom - 05-01-2014 {let file-url:#Url = {choose-file filters=image-file-types}} で選択した画像ファイルのPathを保存して {let my-input:#ByteInputStream = {read-open-byte file-url}} でURLをByteInputStreamで開いて let photo:ImageData = {ImageData.from-stream my-input asa ByteInputStream ,"image/jpeg" } でByteInputStream ソースから ImageData を取得?して表示されるとこはできましたが データベースから値をもってくる際に ByteInputStream型で取得する方法はありますでしょうか? 現在はCsvDataReaderを使用しており、read-recordメソッドで取得しているので 型が#StringArrayになってしまいます。 from-streamメソッドを使用したいので StringArrayを⇒ByteInputStreamへ型変換?する方法をご教授ください よろしくおねがいします。 RE: CurlでBinaryデータを画像表示 - hokada - 05-02-2014 バイトデータをストリームとして扱いたいのであれば、 StringArrayをByteArrayに変換して、 そのByteArrayをByteArrayInputStreamとして生成できると思います。 Code: def bytes = {ByteArray} RE: CurlでBinaryデータを画像表示 - rom - 05-07-2014 >hokadaさん お返事ありがとうございます! しかしながら、自分の理解力と技術力不足により、 「StringArrayをByteArrayに変換」←わからなくて躓いています。 現在自分が試している方法は {bytes.append test-array[0]}と記述していますが、 「String から uint8 にキャストすることはできません。」と エラーが表示されてしまいます。 asaを使用しましたが同じく変換についてエラーが表示されてしまいました。。。 型変換?について教えてもらえたらなと思います! 宜しくお願いします。 RE: CurlでBinaryデータを画像表示 - hokada - 05-07-2014 StringArrayに格納されているデータがどういったものかわかっていないので、 単純キャストすれば、適切なデータになるかわかりませんが、 「Stringからuint8にキャストすることはできません。」というエラーだけ見ると、 Stringは複数バイトの文字列がはいっているため、uint8は1バイトのため、キャストできません。 そのためString内の1文字ずつをuint8(=byte)に変換する必要があります。 例えば、こんな感じですかね? Code: {for test-array in xxxxx do RE: CurlでBinaryデータを画像表示 - rom - 05-07-2014 >hokadaさん ご教授ありがとうございます! 1文字ずつ変換してByteに変換することはできました! しかし、そのバイト配列をImageDataにすることが出来ず・・・ 勉強不足なのでもう少し勉強してきます! ありがとうございました! RE: CurlでBinaryデータを画像表示 - hokada - 05-07-2014 う~ん、何でしょうね。。。 CsvRecordSetを使っていることですので、 DBに格納されているバイトデータ(BLOB型のデータとか?)を、 CSVファイルに保存して、それを読み込んでいるってことでしょうか? RE: CurlでBinaryデータを画像表示 - rom - 05-08-2014 >hokadaさん やりたいことは 画像binaryデータをCurlで表示する!ってだけなんですけどね・・・ Curlのコードに問題があるのか、 Curl以外のコードにミスがあるのか、 自分でも現在どこに行き詰っているのかわからなくて・・・ >CSVファイルに保存して、それを読み込んでいるってことでしょうか? 上記に関してはDBから値を取得する方法として CSVの利用方法しか分からなかったのでそういう状態になっています・・・ RE: CurlでBinaryデータを画像表示 - rom - 05-08-2014 苦労の末、ようやく完成いたしました! hokadaさんに教えてもらったやり方以外に 良い?方法がありました! {bytes.append {test-array[0].to-int} asa byte} test-arrayをintへ変換し、そのあとにbyteに変換すれば 一文字ずつappendしなくても大丈夫でした! for文で一文字ずつ取得するやり方は今後使うことがありそうなのでいい学習になりました! ありがとうございます! |