はてなブックマークに追加

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
はてなブックマークに追加

手品のようにモノが消える TouchRetouch

iPhoneアプリ TouchRetouch の紹介です。

このアプリでは、写真に写った邪魔なものや余計な物を、
手品のように消してしまうことが出来ます。

学術的にはInpaintingという領域。
画像修復などに使われている技術ですね~。

実際にこの写真から女性の方だけ、消してしまいましょう。
けっして彼女が邪魔だ、と言ってるわけではないですよ(笑)

retouch1.jpg

使い方は簡単で、囲みツールやブラシを使って
消したいものを選択します。

今回はブラシを使って塗りつぶしました。
境界線ぎりぎりを塗りつぶしていくよりも、
一回り大き目の輪郭を取ることがポイントです。

retouch2.jpg


こんな感じで選択できました。
いやぁ、大雑把な正確がまるわかりですね(^^;;)

ツールバーのGo!ボタンを押すと、
画像の解析から修復まで全自動でやってくれます。
すばらしい!

修復画像がこちら。

retouch3.jpg

びっくりするくらい綺麗に消えます!
ぜひぜひ、うっとおしい上司など消してみてはいかがでしょう?笑

ご購入はこちら
banner.png
スポンサーサイト
はてなブックマークに追加

UIImaegViewにUIButtonを追加する


UIImaegViewUIButton1.jpg


図のようにUIImaegViewにUIButtonを追加することは
できません!

無理やり追加した場合、ボタンが反応しない不具合が起こります。


ごめんなさい、嘘を書いてました。
UIImaegViewにUIButtonを追加することは
できます!

そのプログラムを下に載せます
なお、画像のtest.png, button.pngなどの画像は
各自用意して、プロジェクトに追加しておいてください。


- (void)viewDidLoad {
[super viewDidLoad];

// imageViewをViewに追加
UIImageView *imageView = [[UIImageView alloc] initWithImage
:[UIImage imageNamed:@"test.png"]];
imageView.frame = CGRectMake(50, 100, 200,200);
imageView.userInteractionEnabled = YES;
[self.view addSubview:imageView];

// UIButtonをUIImageViewに追加
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(160, 0, 40, 40)];
[button setBackgroundImage:[UIImage imageNamed:@"button.png"]
forState:UIControlStateNormal];
[button addTarget:self action:@selector(deleteButtonPressed:)
forControlEvents:UIControlEventTouchUpInside];
[imageView addSubview:button];
}

- (void) deleteButtonPressed:(id)sender
{
NSLog(@"pressed!");
}


ポイントは10行目付近の
imageView.userInteractionEnabled = YES;
と書かれた行です。
デフォルトではUIImageViewはユーザからのタッチイベントを
受け付けない設定になっているので、
この行で、タッチイベントの取得を許可しています。

下図のように、画像とボタンが表示されれば成功です。
ボタンを押せば、コンソールに"pressed!"と表示されます。

uiimageviewuibutton3.jpg

はてなブックマークに追加

UIImageViewを動かす

imageViewで表示した画像を、
指の動きにあわせて動かす方法を紹介します。

まずは動かすための画像をIBで設定します。

moveImageVIew1.jpg

IBのViewウインドウにライブラリからUIImageViewを
ドラック&ドロップします。

moveimageview1_5.jpg

次にAttributesウインドウでファイルを指定し、
画像を読み込みます。

ここまでできたら、Xcodeに戻りプログラムを作成します。
まずは、ヘッダファイルから見ていきましょう。

sampleViewController.h
@interface sampleViewController : UIViewController {
IBOutlet UIImageView *panda;
}

ヘッダファイルでは、先程IB側で設定したUIImageViewのアウトレットを
宣言しているだけです。

mファイルではUIImageViewの中心座標が
指を置いた座標になるようにタッチイベントのコールバック関数を設定します。

コールバック関数とはなんぞや?というかたはこちら
Objective-Cのコールバック

デフォルトで生成されたファイルに次の関数を追加してください。

sampleViewController.m
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint touchPos = [touch locationInView:self.view];
panda.center = touchPos;
}

この関数では、1行目で指座標の配列touchesから、
どれか一つの座標をとり出しています。
次に、2行目では、指の座標を指定したView(今回はオリジナルview)
における座標系に変換します。
最後の3行目で、変換後の座標を画像の中心座標に設定しています。


あとはIB側でpandaアウトレットとUIImageVIewを接続したら
コンパイル&実行してみてください。

画面上で指を動かすと、画像も追従して動けば成功です。

moveimageview2.jpg

開発アプリ

iDOF 色影 ラテアート ぱすてる

プロフィール

hokuson

Author:hokuson
京都在住。iPhoneアプリ「色影」や「iDOF」の開発者。アプリのレビューとかもしてみる。博士後期課程@R大学。ついに就職活動なるものをしなければいけないらしい。誰か雇ってください。笑。

カレンダー
08 | 2010/09 | 10
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -
カテゴリ
最新コメント
RSSリンクの表示
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。