頭と尻尾はくれてやる!

iOSアプリなどの開発日記です


関西電力節電トライアルの結果確定

9月分(といっても8月1日〜末日の分)の節電結果が出たってお話だよ。

この9月分は関西電力の節電トライアル(3ヶ月が対象)の最終月にあたるんだけど、結果はこれ!

節電トライアルの結果

あああ!
9月は前年比10%減で、トータルはマイナス13.6%にとどまり、目標の15%はクリアできず、、、
ちなみに15%をクリアしてるとQUOカード1500円分くれるんだけど、10%はクリアだと1000円分らしい。

ふう、、、無念。


レンタカーのカーナビがすごくて驚いた

この前沖縄に旅行に行ってきたんだけどさ、最近のカーナビがスゴイと気付いたってお話だよ。

ウチの車にはカーナビは付いてないんだ。iPhoneがあるからそれでなんとでもなるしってスタンスでさ。実際マイカーでの旅行ではiPhoneの地図を使っていたけど不満を感じたこともなかったし、むしろ役に立つから将来はカーナビなんて不要になって消え去る運命だな、って思ってたクチなんだよ。

ところが、だよ。
沖縄旅行に申し込むと大抵レンタカーがついてるのかな?初めてなのでよく知らないけど、そういうパターンが多いみたいよ。ともかくウチらのツアーもレンタカーが付いてて、那覇空港に到着後レンタカーに乗り込んだんだ。
車種はトヨタのVitzだったんたけど、これにカーナビが標準で付いてたんだ。

カーナビの画像

↑どこのか知らないけどNSCP-W62って書いてる(調べたらトヨタ純正品みたい)。

これがよくできててさ、驚いちゃったよ。
レンタカー屋のお姉さんにちょっと説明を聞いただけでそこそこ使えるくらいの操作性だよ。アプリなら操作がややこしいので星一つ!ってレビューは入らないレベルだよ。
運転してみるとその精度にも驚いてね。GPS以外にもいろいろとセンサーが車にあって全力でナビしてるんだろうな。
音声のタイミングもいいんだよ。「この信号を右です」なんて言うんだ。間違えようがないよ。まあ、たまに戸惑ったこともあったけど。
「右折レーンがあります」とか「この先合流します。ご注意ください」とかも言ってくれたりするし、「この先?キロ先で渋滞」とかもあったな。ホントよくできてるよ。

将来はスマホで十分、カーナビは消えてなくなるなんて思ってた自分が恥ずかしいくらいだよ。これからもカーナビのさらなる進化に期待するよ!
まあマイカーには要らないけどね。


輝度データ配列からUIImageViewを作る方法

輝度のデータをもつ配列からUIImageViewを作るってお話だよ。

挑戦中の日本語OCRアプリでは画像のデータは配列に入れてるのが基本で特に画像にする必要はないんだけど、動作確認時にはいろいろと画像表示させたいんだ。で、そういう関数を作ったんだよ。まあ返り値はUIImageでもいいし、まだ高速化できる部分もあるけど、あまり気にしないでね。
UIImageView *makeImageViewFromArray(float array[] , int _width, int _height)
{
    size_t width = _width;
    size_t height = _height;
    size_t bitsPerComponent = 8;
    size_t bitsPerPixel = 32;
    size_t bytesPerRow = 4*width;
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    CGBitmapInfo bitmapInfo = 5;
    bool shouldInterpolate = 1;
    CGColorRenderingIntent intent = 0;
    
    //arrayから必要な配列を作成する
    int nData = _width*_height;
    UInt8* dataArray = calloc(nData*4 , sizeof(UInt8));
    UInt8 br;
    for (int ii=0;ii < nData;ii++) {
        br = (UInt8)array[ii];
        *(dataArray+4*ii) = br;
        *(dataArray+4*ii+1) = br;
        *(dataArray+4*ii+2) = br;
        *(dataArray+4*ii+3) = 255;
    }
    CFDataRef data = CFDataCreate(NULL, dataArray, nData*4);
    CGDataProviderRef   dataProvider = CGDataProviderCreateWithCFData(data);
    
    // 画像を作成する
    CGImageRef  cgimage;
    
    cgimage = CGImageCreate(
                                    width, height,
                                    bitsPerComponent, bitsPerPixel, bytesPerRow,
                                    colorSpace, bitmapInfo, dataProvider,
                                    NULL, shouldInterpolate, intent);
    
    UIImage *image = [UIImage imageWithCGImage:cgimage];
    UIImageView *imageView = [[[UIImageView alloc] initWithImage:image] autorelease];
    
    //解放
    CGImageRelease(cgimage);
    CGDataProviderRelease(dataProvider);
    CGColorSpaceRelease(colorSpace);
    CFRelease(data);
    free(dataArray);
    
    return imageView;
}
呼び出す側は輝度のデータが入った配列 float array[400*300]; みたいなのがあって、これだけだと縦横のサイズがわからないから各値も渡すってことで
UIImageView *imageView = makeImageViewFromArray(array , 400 , 300);
こんな感じでUIImageViewオブジェクトを得られるから後は煮るなり焼くなりお好きなようにしてね。
あー、もちろん得た画像は白黒だよ。




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.