• 締切済み

pngをNSDataとしてダウンロード

iPhone開発について質問です。cocos2dを利用しています。 NSURLConnectionを使って、pngファイルをダウンロードしました。 ダウンロードしたファイルはNSDataとして取得できています。 これをローカル保存し、いったん終了し次起動するときちんと読み込みCCTexture2Dを作り表示されます。 しかし、ダウンロードした段階でNSDataからUIImageを作り、CCTexture2Dをつくり表示すると真っ白な矩形になってしまいます。 原因が全く分からず困惑しています。

みんなの回答

  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.2

No.1回答> 臨時にUIImageViewを作り、それにUIImageインスタンスを取り込んで、画面に表示されるか? No.1補足> また、ダウンロードしたNSDataからImageWithDataでUIImageをつくり、UIImageWriteToSavedPhotosAlbumした場合は正しい画像が保存されています。 ファイル保存ができていれば、UIImageViewに取り込んで、画面表示することは、試すまでもなくできるはずと考えるのは、いかがなものでしょう? UIImageがどこかのステップで開放されてしまっていないか?インスタンスのポインタに、ほかのインスタンスやnilが代入されていないかなど、疑いをかけるところは、まだあります。であれば、「UIImageを作り、CCTexture2Dをつくり」というプロセスにいちばん近く、かつバグの心配のない、UIImageViewへの取り込みをやってみるというのは、有効な方法だと思いますが?

  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.1

まず、私はcocos2dというフレームワークを使った経験がないということを、前置きしておきます。 「原因が全く分からず困惑して」いらっしゃるということなので、そうとうがんばって問題の切り分けをなさってきたのだろうと思います。その過程のあらすじでも、ここにお書きになると、原因の特定に結びつくのではないでしょうか? > ダウンロードした段階でNSData NSURLConnectionは成功しているのか? 取り込んだNSDataインスタンスのサイズは、画像が入っていると判断できるほど大きいか? NSDataインスタンスは、retainされているか? > NSDataからUIImageを作り、 UIImageインスタンスの作成は成功しているか? 臨時にUIImageViewを作り、それにUIImageインスタンスを取り込んで、画面に表示されるか? > UIImageを作り、CCTexture2Dをつくり このプロセスは成功しているか? iPhoneは、256MBないし512MBという、限られたメモリで仕事をしているので、サイズの大きな画像を、そのまま処理することを、不得手としています。じゅうぶん小さなPNG画像を用意して、それを読み込みできるか、確認するのも、問題の切り分けとして、有効な方法です。 最低でも、このくらいの数の切り分けを行った結果を、記述していただく必要があるでしょう。

artegen
質問者

補足

NSURLCOnnectionは成功しています。インスタンスのサイズは妥当です。 また、ダウンロードしたNSDataからImageWithDataでUIImageをつくり、UIImageWriteToSavedPhotosAlbumした場合は正しい画像が保存されています。 CCTexture2Dは作成されており、画像と同じサイズのテクスチャが表示されますが、それが真っ白になってしまうのです。 また、画像は数十kbで、空きメモリは十分でした。 白くなる場合の切り分けはできているのですが、原因がわからない、といった状態です。

関連するQ&A

  • iPhone開発にて 透過PNGを表示させたいです。

    お世話になります。 iphoneの開発にて行き詰まってしまいましたので 質問させていただきます。 画面にPNGイメージを描画させたいのですが 背景色は透明にして表示させたいのです。 PNG自体にアルファチャンネルで背景を出さないものを作り 下記*)の用なコードを作成し実行したところ iphoneシミュレータではきちんと透過されていたのですが 実機で試したところ背景色黒塗りになってしまいました。 表示されるようにするにはどうしたらよいのでしょうか? 以上よろしくお願いします。 *)イメージの描画部分 UIImage* _image;//イメージ _image=[[UIImage imageNamed:@"test.png"] retain]; [_image drawAtPoint:(CGPointMake(1,1))];

  • 拡張子が.png

    友達より拡張子.pngの画像ファイルをもらいまして クリックしたのですが開けません。 「ファイルをダウンロードしますか?」っと聞かれます。 ローカルに保存しても、そう聞かれてしまいます。 OSwin98です。 他の人はクリック一つで見られるそうなのですが、 何故私は見られないのでしょうか?

  • PNGファイルの表示

    ホームページを作っている者です。 PNGファイルに直接リンクした場合、マックのブラウザから ダウンロードは出来ても表示することが出来ません。 しかもPNGファイルを一切いじらずに表示させたいのですが? パソコン上の設定で済むのか、リンクの仕方で解決するのか、 その方法を教えてください。 ちなみに、HTML上にPNGファイルを置いた場合は表示すると思います。 この質問の意味がわかりにくかったらごめんなさい。

    • ベストアンサー
    • Mac
  • ダウンロードしたPNGファイルをPaintshopで編集しようと開くと

    ダウンロードしたPNGファイルをPaintshopで編集しようと開くと、崩れています。 Fireworksで開くときちんと表示されます。 Adoveイラストレーターで作成されたもの、とのことなのですが、 互換性の問題でPaintshopでは開けない、ということがあるのでしょうか? もしその場合は、なにか回避方法はあるでしょうか?

  • Macにcocos2d-xをインストールできません

    これからゲームアプリ開発をしていこうと考え、cocos2d-xを使おうと考えています。 cocos2d-xをダウンロードし、ターミナルで sudo ./install-templates-xcode.sh  を入力しても command not foundと帰ってくるだけでインストールがされません。 全くの素人なのでどうしてこうなっているのか、どうすれば良いのかがまったくわかりません。 どうか解決方法を教えて頂けないでしょうか。 ■環境 MacOS:10.7.5 xcode:4.6 cocos2d-x:2.2

  • pngの画像表示について。

    初めまして。pngの画像表示について質問なのですが よければ教えて下さい。 この前フォトショップをインストールした所、 今までpngファイルがインターネットエックスプローラー で開けていたのですが、フォトショップで開くように なってしまいました。 そのpngのアドレスをクリックすると普通にインターネット エックスプローラーで開けるようにしたいのです。 ですが今は、「画像をダウンロードしますか?」のように 出てきてしまい、困っています。 どうしたらいいのでしょうか? 是非解決方法教えて下さい。お願いします。

  • Swiftについて教えてください

    下記のようにようにサーバにある画像を読み込んでいます。サーバのimgフォルダの中の画像( 1.png~20.png)を全て読み込み配列に入れる方法を質問して、回答をいただき解決しました。(以下のコード)それを拡張してサーバのimgフォルダの中の画像の数が分かってないものを配列に読み込もうとしています。画像の数が分かってないものを全て読み込み配列に入れる方法が分からず困っています。よろしくお願いします。 // URLリクエストを作る for i in 1...20 { let url = NSURL(string:"http://xxxxxxxxxxxxxxxx/img/"+String(i)+".png") let request = NSURLRequest(URL : url!) var error: NSError? // 同期通信を開始 if let resData:NSData = NSURLConnection.sendSynchronousRequest(request, returningResponse: nil, error: &error){ let image = UIImage(data:resData) self.imageArray.append(image!) } }

  • iphoneで虫眼鏡の作り方

    iPhoneアプリ内で虫眼鏡機能を実装したいと思っております。 拡大元の画像の一部分を円形に拡大して表示(虫眼鏡のイメージ)したいと 考えております。 (拡大元画像の任意の点(x,y)から任意の半径rの円形範囲部分を(面積比2倍等)拡大して拡大元画像の上に重ねて表示) 虫眼鏡の拡大部分は 円形 で矩形領域ではありません。。 (円形での方法が分かりません。。) cocos2dを利用しているためcocos2dで上記の虫眼鏡機能が実装できると 助かるのですが・・UIKitでもかまいません。 参考になりそうなサイト等でもOKです。 ご教授お願い致します。

  • ホームページを開きたいのにダウンロードになってしまう

    ホームページを開設しています。これまで、自分のホームページを、IEで閲覧している際は、アドレスを入力すると普通に開いて閲覧できていたのですが、FireFoxに切り替えてみると、普通に開くのではなく、htmlファイルをダウンロードマネージャでいったんダウンロードしてから、ローカルファイルを閲覧する設定になってしまいました。その後は、FireFoxでいくら正しいアドレスを入力しても、エンターキーを押すと、ローカルファイルのアドレスに表示が切り替わり、ローカルファイルを閲覧することになってしまっています。どうしたら、IEと同じように、FireFoxで見ることができるのでしょうか。どなたか教えていただきたく、よろしくお願いいたします。

  • ドラッグして矩形を描くには

    JavaScriptを用いて開発を行っています。 行いたいことは、画像の上でマウスをドラッグすると矩形が表示されるというものです。 矩形を描くことによって、選択範囲を取得したいと考えています。 Flashを用いることも考えたのですが、できればjavascriptで対応できればと考えております。 よろしくお願いいたします。