« 2011年1月 | メイン | 2011年3月 »

2011年2月16日

andoridでサムネイル画像を正しい向きで表示する

最近androidの開発はじめました。
iOSとは違うところが多くて、あちこちで躓いていますがなんとか元気です。

で、ちょっとSDカードに保存されている画像の一覧をGalleryウィジェットに表示しようと思いまして。
コンテンツプロバイダ経由で、サムネイルを表示しようと思ったわけなんですが、これが、なんか、撮った写真の向きとは違うサムネイルが表示されちゃうわけですよ。
うまい方法ないかなーと探してたんだけど、なかなか見つからず、必死でひねり出してみました。

で、こんな感じのアダプターを作ってみたのです。

    public class ImageAdapter extends BaseAdapter {
        Context context;
        Cursor curusor;
        ContentResolver cr;
        public ImageAdapter(Context c) {
            context = c;
            cr = getContentResolver();                  
            Uri uri = MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI;  
            curusor = cr.query(uri, null, null, null, null); 
      
            curusor.moveToFirst();  

        }
        public int getCount() {
            return curusor.getCount();
        }
        public Object getItem(int position) {
            return position;
        }
        public long getItemId(int position) {
            return position;
        }
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView i = (ImageView)convertView;
              if (i == null) {                                        
                 i = new ImageView(context);
                 try {
                     curusor.moveToPosition(position);  

                     long image_id = curusor.getLong(curusor.getColumnIndexOrThrow("image_id"));
                     
                     Bitmap obm = MediaStore.Images.Thumbnails.getThumbnail(
                             cr, 
                             image_id,
                             MediaStore.Images.Thumbnails.MICRO_KIND,
                             null);
                     
                     Uri uri = ContentUris.withAppendedId(
                             MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                             image_id); 
                     Cursor c = cr.query(uri,
                                new String[] { MediaStore.Images.ImageColumns.ORIENTATION },
                                null, null, null);
                     c.moveToFirst();
                     int orientation = c.getInt(0);
                            
                     int width = obm.getWidth();  
                     int height = obm.getHeight();  

                     Matrix matrix = new Matrix();
                     
                     Bitmap bm;
                     if (orientation == 0) {
                         bm = obm;
                     } else {
                         matrix.postRotate(orientation);  
                         bm = Bitmap.createBitmap(obm, 0, 0, width, height, matrix, true);  
                     }
                     
                     i.setImageBitmap(bm);
                     i.setScaleType(ImageView.ScaleType.FIT_XY);
                 } catch (Exception e) { 
                 } 
              }
              return i;
        } 
    } 

サムネイルを取得するときに、元の画像のorientationを取得してそれに合わせてサムネイルを回転させるという寸法。
サムネイル自身に、orientation情報があればよかったのだけど、なんか、見つからなかった。これが取れちゃえば一発なんだけども。
でも、なんかもっとうまい解決方法があるような気もする......。

で、こんな感じに使うとギャラリーにサムネイルが表示されるよーって感じ。

        Gallery g = (Gallery) findViewById(R.id.Gallery01);
        g.setAdapter(new ImageAdapter(this));  

いやいや、違うよ! とか、もっと良い方法あるよ! とか教えてもらえるとうれしいですー。

投稿者 CHEEBOW : 16:03

[ android ]

2011年2月17日

iPhoneアプリ「PiPict」がfacebook対応しました

僕の所属するエムロジック株式会社がリリースしている、写真を撮ってTwitterに投稿したりアイコンにしたりできるiPhoneアプリ「PiPict」が、ついにfacebook対応しましたよ!

PiPIctの美味しさフィルタを使うと「戻りガツオの刺身定食」が

戻りガツオ(加工前)

戻りガツオ(加工後)

こんな感じによりおいしそうになります!
今までは、Twitterにしか投稿できませんでしたが、新しいバージョンからfacebookに投稿できるようになりましたー。
美味しかったお昼ご飯、愛情たっぷりの愛妻弁当、楽しいディナーのおいしい食事なんかをPiPictでもっと美味しそうに加工してfecebookで「いいね!」されちゃったりするのも楽しいですよー。

PiPict

PiPict

投稿者 CHEEBOW : 12:24

[ iPhone ]

2011年2月23日

「達人と作る アナログシンセサイザー自作入門」が出るんですって!!

達人と作る アナログシンセサイザー自作入門
岩上直樹
ラトルズ
売り上げランキング: 1049

すごい本が出ますよ!!
アナログシンセを自分で作っちゃうって本です。
ソフトシンセとかじゃないですよ? VCAとかから手作りですよ?
胸熱!!

ソフトシンセではなく、"本物"のアナログシンセを作ろう! 超ロングセラー『大人の科学マガジン別冊 シンセサイザー・クロニクル』(学研)付録の アナログシンセSX-150の設計や、 ISO/IEC MPEG-4 Audio標準文書の作成に参画した著者が、 「どう作る?」「どう使う?」「なぜ動く?」の3つの疑問に答えながら アナログシンセの作り方をイチから伝授します。 必要なのは安価なパーツと好奇心だけ!


ラトルズの本:達人と作る アナログシンセサイザー自作入門 ----世界で一台のオリジナル・アナログシンセを作る

目次をみるだけでも、わくわくします。

実は、この本、僕も企画の段階でお手伝いをしているのです。
絶対面白いし、なにしろ僕が読みたい! そんな本です。
音楽が好き、シンセが好き! そんな人はぜひ手に取ってみてください。
実際に作るかどうかは別にして、きっと夢が広がりますよ。

投稿者 CHEEBOW : 11:34

[ BOOK ]