2008年12月27日土曜日

2008年に購入して感動したガジェット

1. iPhone
携帯電話ともMacともPCとも違う、全く新しいジャンルのデバイス。とにかくすごいガジェット。日本のいわゆる「ケータイ」と思って使うと「何これ!?」となる。飽きがこない希有な製品。ガジェット好きならiPhoneを持たずには死ねない。展示品を触ったりiPod Touchを持ってiPhoneのことがわかった気になっていたら大きな間違い。

2. MacBook (2008 Late) 2000/13.3 アルミニウム MB466J/A
クオリティの高さを考慮に入れると格安のラップトップと言える。ハードとソフトを一気通貫するユーザエクスペリエンスはさすがアップル社。このマシンも例外ではない。OS X Leopardのデザインにアルミニウムボディ+ピアノブラック液晶枠が実に合う。液晶が静かに閉じるなどの細かい気配りもうれしい。ガラス表面タッチパッドの障り心地が最高だ。工業デザイン極みここにあり!

3. VX Nano Cordless Laser Mouse for Notebooks
極小レシーバ付きコードレスマウス。デザインがよすぎるマウス。機能的にもよくできていて感度良好、レシーバーが本体にしまえるのがうれしい。ただしマウスの中では高価。

【AR拡張現実】FaLLen (SREngine)が日経ネットワークに掲載

日経ネットワーク2009年1月号の特集1 近未来の通信技術で拡張現実が取り上げられています。

この特集では通信技術の最先端分野が紹介されています。拡張現実が様々な通信技術を応用して取り入れることで今後、進化・発展していくという内容です。

FaLLenのスクリーンショットと模式図つきで紹介されています。

ラベル: , , , ,

2008年12月12日金曜日

【iPhone SDK】UIImage, CGImageRefの基本:拡大縮小

次のような変数があるとする。
UIImage *image;
まず、CGImageRef型を得る。
CGImageRef imageRef = [image CGImage];
画像の情報を得る
size_t width = CGImageGetWidth(imageRef);
size_t height = CGImageGetHeight(imageRef);
size_t bitsPerComponent = CGImageGetBitsPerComponent(imageRef);
size_t bitsPerPixel = CGImageGetBitsPerPixel(imageRef);
size_t bytesPerRow = CGImageGetBytesPerRow(imageRef);


画像のサイズを変更する;拡大縮小
UIImage *resized;
size_t newWith = ...;
size_t newHeight = ...;
UIGraphicsBeginImageContext(CGSizeMake(newWidth, newHeight));
[input drawInRect:CGRectMake(0, 0, newWidth, newHeight)];
resized = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

ピクセル単位にアクセスする。
CGImageRef inputImageRef = [resized CGImage];
CFDataRef inputDataRef = CGDataProviderCopyData(CGImageGetDataProvider(inputImageRef));
unsigned char *pixelData = (unsigned char*) CFDataGetBytePtr(inputDataRef);
int length = CFDataGetLength(inputDataRef);

ピクセルデータから画像構築。
CGDataProviderRef dataProviderRef;
dataProviderRef = CGDataProviderCreateWithData(NULL, pixelData, width2*height2*4, NULL);
CGImageRef newImageRef = CGImageCreate(width2, height2, bitsPerComponent, bitsPerPixel, bytesPerRow, CGColorSpaceCreateDeviceRGB(), kCGImageAlphaLast, dataProviderRef, NULL, 0, kCGRenderingIntentDefault);

ImageRefからUIImageを得る。
UIImage *newImage = [[UIImage alloc] initWithCGImage:newImageRef];