IconUtility ver. 0.9.3 - 画像縮小時の質感のコントロール
Tags: App, Cocoa, iPad, iPhone, Mac
![]()
iPhone、iPad用にアイコンをリサイズするMacアプリケーションIconUtilityをver. 0.9.3にアップデート。画像縮小時の質感のコントロールできるようになりました。具体的にはCoreGraphicsが描画時に使用するinterpolationアルゴリズムを選択できるようにしています1。コアになっているのは以下の関数。
void CGContextSetInterpolationQuality ( CGContextRef c, CGInterpolationQuality quality ); enum CGInterpolationQuality { kCGInterpolationDefault = 0, kCGInterpolationNone = 1, kCGInterpolationLow = 2, kCGInterpolationMedium = 4, kCGInterpolationHigh = 3 }; typedef enum CGInterpolationQuality CGInterpolationQuality;
CGInterpolationQualityの具体的な使用例はResize a UIImage the right way — Trevor’s Bike Shedで紹介されているUIImage+Resize.h, UIImage+Resize.mが参考になります。
以下IconUtility ver.0.9.3で作成したアイコン例を挙げておきます。
- None (kCGInterpolationNone)を使用した場合のIcon@2x.png
![]()
- High (kCGInterpolationHigh)を使用した場合のIcon@2x.png
![]()
ソースとアプリケーション本体は以下に置いてあります。
Footnotes
- 以前のバージョンではkCGInterpolationDefaultのみを使用。 [↩]
IconUtility - iPhone/iPad用のアイコンイメージ作成アプリケーション
Tags: App, Cocoa, iPad, iPhone, Mac, Objective-C
![]()
画像をドロップするとiPhone/iPad用のアイコン用にリサイズするMac用アプリケーションです。対応サイズと出力ファイル名は以下の通り1。
- Icon.png - 57×57ピクセルのiPhoneアイコン
- Icon@2x.png - 114×114ピクセルのiPhone 4アイコン
- Icon-72.png - 72×72ピクセルのiPadアイコン
- Icon-Small.png - 29×29ピクセルのiPhoneセッティングアイコン
- Icon-Small@2x.png - 58×58ピクセルのiPhone 4セッティングアイコン
- Icon-Small-50.png - 50×50ピクセルのiPadセッティングアイコン
ソースとアプリケーション本体は以下に置いてあります。
Footnotes
[iPad][App] Pscope for iPad
» Demo movie for iPad users
» Demo movie for iPhone users
Pscope for iPadはフォトライブラリの写真から万華鏡ライクなイメージを生成するiPadアプリケーションです。Pscopeの名前の由来は「Pentagonal kaleidoscope」です。万華鏡でいうところの鏡の形状が五角形になっているので一般的な万華鏡とは違った雰囲気が楽しめます。五角形の形状は現在知られているパターンすべて(注1)を網羅しておりサイズや形状などの細かいカスタマイズも可能です。さらにスクリーン上のタッチポイントによって描画される画像が変化するので同じ写真素材からいくらでも異なる万華鏡イメージを作り出します。
(注1. 2010.07.02 - 五角形タイルの全14パターンの内、Type 2と呼ばれるものについては現在修正中につきアプリケーション内で使用できません。修正完了までお待ちください)
Demo images
いくつかの有名な五角形タイルを用いて実際に万華鏡イメージを出力させてみました。
- 入力に用いたのは以下の画像 (from [Flash] fla06 - boreal-kiss.com)。

- Cairo pentagonal tilingを用いて描画したもの。

- Floret pentagonal tilingを用いて描画したもの。

- Prismatic pentagonal tilingを用いて描画したもの。

App Storeで販売中
Pscope for iPadは現在230円で販売中です。
アプリケーション詳細はこちら。» Pscope for iPad
参考
- The 14 known pentagon tiles (image from Pentagon tiling - Wikipedia, the free encyclopedia).
- Pentagon Tiling — from Wolfram MathWorld
iPadアプリケーションでのUITabBarControllerの問題点
Tags: iPad, iPhone, UITabBarController
Important note at July 05, 2010
It is found the problem below does not come from SDK but ME. Specifically when implementing UITabBarController, I’ve ignored to set its view’s autoresizesSubviews property to YES. The repository of BKTabBarController at github.com will be also closed soon.
——————- The original artice stats here. ——————-
SDK 3.2ではiPadをターゲットにした場合UITabBarControllerが正しく動作しない。具体的に言うと以下のような問題が発生する。
- デバイスの回転が生じた際、配下のUIViewControllerのビューフレームが再配置されない。
- 回転後に強制的に子ビューのフレームを変更すると、子ビュー中のボタン(UINabigationBarの場合右側ボタンのみ)が動作しなくなる。
全く同じ現象に悩んでいる人が他にもいたので自分の勘違いというわけではなさそうだ。
View controllers inside tab bar controller not auto-resizing on rotation - Stack Overflow
もし勘違いでないとすると結構な問題だ。というのもiPadではPortraitとLandscapeどちらのデバイス方向にも対応したアップリケーションでなければ提出できないのだが、UITabBarControllerを使った場合回転時に全く使い物にならないアプリケーションになってしまうからだ。
BKTabBarController
そこで上記問題点を解消するようなTabBarControllerクラスを作った。次回SDKアップデートでUITabBarControllerの不具合が修正されるまでは役立つと思う。UITabBarControllerと同じインターフェースで、現時点で実装してあるものを以下に示す(タブのカスタマイズ系は未実装)。
Properties / methods
@interface BKTabBarController : UIViewController { } @property (readonly, retain) UITabBar *tabBar; @property (nonatomic, copy) NSArray *viewControllers; @property (nonatomic, assign) NSUInteger selectedIndex; @property (nonatomic, assign) UIViewController *selectedViewController; @property (nonatomic, assign) id <BKTabBarControllerDelegate> delegate; -(void)setViewControllers:(NSArray *)controllers animated:(BOOL)animated; @end
Delegate
@protocol BKTabBarControllerDelegate <NSObject> @optional -(void)bkTabBarController:(BKTabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController; -(BOOL)bkTabBarController:(BKTabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController; @end
ソースコードを含むサンプルプロジェクトとスタティックライブラリ化したライブラリは以下においてあるのでご自由にお使いください。

