|
DelphiXE4 [FMX]イメージコントロール(ImageControl) 2015/04/09 |
前回は[Standard]内の「ラベル(Label)」について記述しましたので、今回は、同じく[Standard]内の「イメージコントロール(ImageControl)」について記述します。このコンポーネントは画像を表示するだけではなく、何もせずとも、クリックすると画像を開く画面を表示して画像ファイルを指定させる事が出来ます。
【DelphiXE3[FMXアプリケーション]の記事はこちら】
XE4(FMX)
FMX.StdCtrls.TImageControl |
XE3(FMX)
FMX.Controls.TImageControl |
| |
| |
ユニットが変わっていますが、オブジェクトインスペクタでは、プロパティ・イベント共に変わっていない様子です。
(ヘルプより)
Bitmap
このイメージコントロールコンポーネント上に表示される、TBitmap画像を示します。
Bitmapを使用すると、TImageControlコンポーネントのイメージを指定することができます。Bitmapは、FMX.Types.TBitmapオブジェクトへの参照です。
設計時にBitmapを設定すると、ビットマップエディタが起動され、表示したいイメージを含むファイルを指定することができます。 |
FMX.Types.TBitmap
TBitmapはビットマップをカプセル化したものです。
TBitmapは、画像を作成、操作したり、メモリ内やディスク上のファイルとして保存するために使われる、強力なグラフィックオブジェクトです。TBitmapは、ビットマップグラフィックの内部画像を含み、描画時にはパレットを実現したものを自動的に管理します。また、内部にCanvasも含みます。
TBitmapは、CreateFromStreamまたはCreateFromFileを使用して、ストリームまたは名前を指定したファイルから作成することができます。現在のTBitmapに含まれる画像は、指定したストリームやファイルから読み出したり、そこに保存することができます。各プラットフォームでサポートされている形式の一覧については、TBitmapCodecManagerを参照してください。
TBitmapには、Rotate、FlipHorizontal、FlipVertical、InvertAlpha、ReplaceOpaqueColorといった、幾何学的操作や色の操作を行うための基本的なメソッドがカプセル化されています。ビットマップデータに直接アクセスするには、MapメソッドおよびUnmapメソッドを使用します。ビットマップデータに対するアクセスは、読み取り専用、書き込み専用、または、読み取りおよび書き込みで行うことができます。ビットマップのピクセルの内部形式に関する情報を取得するには、PixelFormatプロパティを使用します。ビットマップデータの属性は、TBitmapDataレコードで指定されます。Mapは、TBitmapDataに対する指定された種類のアクセスを取得し、成功すればTrueを返します。Mapを呼び出した後にはUnmapを呼び出してください。FMX.PixelFormatsには、ピクセルをTAlphaColorとして操作するためのルーチンが含まれています。
TImageなど、TBitmapを含んで操作するコントロールは、その中のビットマップにアクセスするためのIBitmapObjectインターフェイスを実装しています。 |
TBitmapCodecManager
TBitmapCodecManagerは、システムのTBitmapエンコーダ/デコーダの基底クラスです。
TBitmapCodecManagerは、異なるプラットフォーム(GDI+、Direct2D)のTBitmapエンコードコーデックおよびデコードコーデックのサポートを提供します。
TBitmapCodecManagerは、TBitmapインスタンスの保存時または読み込み時にフィルタの作成に使用されます。
メモ:ビットマップコーデックは、画像ファイルや画像データの圧縮および解凍の手段です。"コーデック"(codec)という用語は、コーダー(coder)とデコーダ(decoder)を意味します。
サポートされている画像形式すべてのプラットフォームでサポートされている画像形式は以下のとおりです。
JPEG(.jpeg、.jpg)
TIFF(.tiff、.tif)
GIF
PNG
BMP
WindowsでのDirect2Dに関係する追加形式は以下のとおりです。
JPEGXR(.hdp、.jxr、.wdp)
ICO
WindowsでのGDI+に関係する追加形式は以下のとおりです。
WMF
ICO
OSXでの追加形式は以下のとおりです。
JPEG2000(.jp2)
PSD
TGA
ICNS |
WMFとありますが、WMF=WindowsMetaFile は選択出来ません。 |
下図のように画面レイアウトしてみました。
プログラムコード入力は何もしていませんが、このまま保存・コンパイル(ビルド)・実行を行います。
↓ クリックします
開く画面が表示されますので画像を選択します
↓
という感じで何もせずとも簡易ビューワーの出来上がりです。
このまま MacOSX ではどうなるのか確認してみます。
↓ クリックします
開く画面が表示されますが
よく分かりませんのでプレビュー付き画面にします
↓
画像を選択します
↓
という感じで、「ファイルの種類」の指定はありませんが、MacOSX でも動作することが確認出来ます。
例えば下記のようにコンポーネントを配置してボタンをクリックした時のイベントを下記のようにします。
procedure TForm1.Button1Click(Sender: TObject);
var
f,e : string ;
begin
if (OpenDialog1.Execute) then begin
f := OpenDialog1.FileName ;
e := LowerCase(ExtractFileExt(f));
if (e = '.jpg')or(e = '.tif')
or(e = '.png')or(e = '.gif')
or(e = '.gif')or(e = '.bmp')
or(e = '.ico')or(e = '.wmp') then begin
Label1.Text := f ;
ImageControl1.Bitmap := nil ;
try
ImageControl1.Bitmap.LoadFromFile(f);
finally
;
end;
end;
end;
end; |
保存・コンパイル・実行します。
次に、例えば下記のようにコンポーネントを配置してボタンをクリックした時のイベントを下記のようにします。
procedure TForm1.Button2Click(Sender: TObject);
var
f,e : string ;
begin
ImageControl1.Bitmap.Rotate(30.0);
if (SaveDialog1.Execute) then begin
f := SaveDialog1.FileName ;
e := LowerCase(ExtractFileExt(f));
if (e = '.jpg')or(e = '.tif')
or(e = '.png')or(e = '.gif')
or(e = '.gif')or(e = '.bmp')
or(e = '.wmp') then begin
try
ImageControl1.Bitmap.SaveToFile(f);
finally
;
end;
end;
end;
end; |
保存・コンパイル・実行します。
Button1をクリックしてクラゲ.jpgを開き、Button2をクリックします。
↓
回転処理を行なった画像を「TEST.GIF」として保存
↓
Button1をクリック
↓
「TEST.GIF」を開く
↓
というように、回転・水平反転・垂直反転であれば簡単に行う事が出来、画像保存を行う事が出来ます。その際、別の形式の画像ファイルとして変換保存を行う事も出来ます(拡張子で判断される様子です)。
(ヘルプより)TBitmapのメソッド
_AddRef
protected
インターフェース化オブジェクトのインターフェースの参照カウントをインクリメントします。
_Release
protected
インターフェース化オブジェクトのインターフェースの参照カウントをデクリメントします。
AddFreeNotify
public
TBitmap が破壊される旨の通知を、オブジェクトが受けられるようにマークします。
AfterConstruction
public
Owner のインターフェースへの参照を取得します。
ApplyMask
public
指定されたマスクを、TBitmap オブジェクトの指定された位置で適用します。
Assign
public
AssignTo
protected
BeforeDestruction
public
最初のデストラクタが実行される前に応答します。
CheckDisposed
protected
ClassInfo
public
オブジェクト型の実行時型情報(RTTI)テーブルのポインタを返します。
ClassName
public
引数で渡される変数の型ではなくオブジェクトインスタンスの型を示す文字列を返します。
ClassNameIs
public
オブジェクトが指定の型かどうかを示します。
ClassParent
public
1 つ上位のクラスの型を返します。
ClassType
public
オブジェクトのクラスへのクラス参照を返します。
CleanupInstance
public
クラス内の長い文字列とバリアントとインターフェース変数に対する終了処理を実行します。
Clear
public
TBitmap オブジェクトの表面をクリアし、指定された色で塗りつぶします。
ClearRect
public
TBitmap イメージから四角形の領域分をクリアし、指定された色で塗りつぶします。
CopyFromBitmap
public
四角形の領域を、指定されたビットマップから現在のビットマップへコピーします。
Create
public
TBitmapオブジェクトを、AWidth および AHeight パラメータで指定された、Width と Height で構築および初期化します。
CreateFromBitmapAndMask
public
TBitmap オブジェクトを、既存の TBitmap オブジェクトにマスクを適用することにより、構築します。
CreateFromFile
public
TBitmap オブジェクトを、AFileName パラメータによって指定されたファイルから、イメージ コンテンツをロードすることによって、構築します。
CreateFromStream
public
TBitmap オブジェクトを、AStream パラメータによって指定された TStream から、イメージ コンテンツをロードすることによって、構築します。
CreateMask
public
現在の TBitmap イメージからマスクを作成します。
CreateThumbnail
public
現在の TBitmap オブジェクトのサムネイルを、指定された大きさで作成します。
DefaultHandler
public
メッセージレコードを処理するメソッドのインターフェースを提供します。
DefineProperties
protected
TStream オブジェクトに対して、ビットマップ データ ストリームを読み書きするための、仮想プロパティを設定します。
Destroy
public
TBitmap オブジェクトのインスタンスを破棄します。
Dispatch
public
Message パラメータの内容に基づいてオブジェクトのメッセージ処理メソッドを呼び出します。
DisposeOf
public
DisposeOfは、オブジェクトのデストラクタコードを、強制実行します。
Equals
public
現在のインスタンスとパラメータが等しいかどうかを調べます。
FieldAddress
public
パブリッシュオブジェクト項目のアドレスを返します。
FlipHorizontal
public
TBitmap イメージを、水平にフリップさせます。
FlipVertical
public
TBitmap イメージを、垂直にフリップさせます。
Free
public
オブジェクトを破棄し,必要ならば関連付けられているメモリを解放します。
FreeInstance
public
NewInstanceメソッドの前回の呼び出しによって割り当てられたメモリを解除します。
FreeNotification
protected
TBitmap が破壊される旨の通知を、特定のオブジェクトが確実に受けられるようにします。
GetDisposed
protected
GetHashCode
public
ハッシュ コードを表す整数を返します。
GetInterface
public
指定したインターフェースを取り出します。
GetInterfaceEntry
public
クラス内で実現された特定のインターフェースのエントリを返します。
GetInterfaceTable
public
指定したクラスで実装されているすべてのインターフェースが入った構造体のポインタを返します。
GetNamePath
public
オブジェクトインスペクタに表示されるオブジェクト名を返します。
GetOwner
protected
オブジェクトのオーナーを返します。
HandleAllocated
public
現在のビットマップに、ハンドルが確保されているかを確認します。
InheritsFrom
public
2 つのオブジェクト型の関係を調べます。
InitInstance
public
新しく割り当てられたオブジェクトインスタンスをすべて 0 に初期化し,インスタンスの仮想メソッドテーブルポインタを初期化します。
InstanceSize
public
オブジェクト型の各インスタンスのサイズをバイト数で返します。
InvertAlpha
public
TBitmap イメージの各カラー ビットの透明度係数(Alpha)を反転させます。
IsEmpty public 現在の TBitmap が空かどうかを検証します。
LoadFromFile
public
ファイルから、現在の TBitmap オブジェクトのイメージ コンテンツをロードします。
LoadFromStream
public
ストリームから、TBitmap オブジェクトのイメージ コンテンツをロードします。
LoadThumbnailFromFile
public
AFileName パラメータで示されたサムネイルを、指定されたサイズで、ファイルからロードします。
Map
public
現在の TBitmapのビットマップデータへの直接アクセスを提供します。
MethodAddress
public
名前を指定すると、クラス メソッドのアドレスを返します。
MethodName
public
アドレスを指定すると、クラス メソッドの名前を返します。
NewInstance
public
オブジェクト型のインスタンスにメモリを割り当て,その新しいインスタンスを指すポインタを返します。
operator ()
public
TBitmapオブジェクトを _di_IFreeNotification または
_di_IStreamPersist へキャストするキャスト演算子。
QualifiedClassName
public
クラスの修飾名を返します。
QueryInterface
public
指定されたインターフェースをオブジェクトがサポートしている場合,そのインターフェースへの参照を返します。
ReadBitmap
protected
TBitmap のイメージを、指定された TStream から読み取ります。
Recreate
protected
現在の TBitmap を、サイズ変更された際に再度作成するために、内部的に使用されます。
RemoveFreeNotify
public
TBitmapが破壊される旨の通知を、オブジェクトが受けなくなるようにします。
ReplaceOpaqueColor
public
現在のビットマップの不透明色のすべてを、指定された色で置換します。
Resize
public
Rotate
public
現在の TBitmap イメージを、特定の角度回転させます。
SafeCallException
public
safecall呼び出し規約を使って宣言されたメソッド内での例外を処理します。
SaveToFile
public
現在の TBitmap をファイルへ保存します。
SaveToStream
public
現在のの TBitmap を TStream に保存します。
SetBitmapScale
protected
SetSize
public
現在の TBitmap のサイズを設定します。これは、Height と Width で定義されます。
ToString
public
クラス名を表す文字列を返します。
UnitName
public
クラスが定義されているユニットの名前を返します。
UnitScope
public
クラスのユニット スコープを返します。
Unmap
public
現在のビットマップのカスタマイズセッションをファイナライズします。
WriteBitmap
protected
TBitmap を TStream を書き込みます。 |
TBitmapのイベント
OnChange
public
TBitmap が変更された際に発生します。 |
TBitmapのプロパティ
BitmapScale
public
Canvas
public
現在の TBitmap を表す描画面へのアクセスを提供します。
CanvasClass
public
Disposed
protected
Disposed は読み取り専用プロパティで、このオブジェクトの現在の状態を示します。
Handle
public
現在のビットマップの ハンドル を取得します。
Height
public
TBitmap イメージの高さを、ピクセルで示します。
PixelFormat
public
現在のビットマップ ピクセルの、内部ピクセル形式を取得します。
ResourceBitmap
public
現在の TBitmap のリソースを示します(ある場合)。
StyleLookup
published
現在の TBitmap がリンクされるリソースの名前を示します。
Width
public
TBitmap イメージの幅を、ピクセルで示します。 |
TCanvasのメソッド
_AddRef
protected
インターフェース化オブジェクトのインターフェースの参照カウントをインクリメントします。
_Release
protected
インターフェース化オブジェクトのインターフェースの参照カウントをデクリメントします。
AfterConstruction
public
Owner のインターフェースへの参照を取得します。
Assign
public
ほかの類似オブジェクトの内容をコピーします。
AssignTo
protected
オブジェクトのプロパティをコピー先のオブジェクトにコピーします。
BeforeDestruction
public
最初のデストラクタが実行される前に応答します。
BeginScene
public
描画が開始されたことを、TCanvas オブジェクトに通知します。
CheckDisposed
protected
ClassInfo
public
オブジェクト型の実行時型情報(RTTI)テーブルのポインタを返します。
ClassName
public
引数で渡される変数の型ではなくオブジェクトインスタンスの型を示す文字列を返します。
ClassNameIs
public
オブジェクトが指定の型かどうかを示します。
ClassParent
public
1 つ上位のクラスの型を返します。
ClassType
public
オブジェクトのクラスへのクラス参照を返します。
CleanupInstance
public
クラス内の長い文字列とバリアントとインターフェース変数に対する終了処理を実行します。
Clear
public
TCanvas オブジェクトの表面のクリアします。
ClearRect
public
TCanvas オブジェクトから、四角形の領域をクリアします。
CopyBitmap
public
Create
public
CreateFromBitmap
protected
TBitmap から TCanvas を作成し、初期化します。
CreateFromPrinter
protected
プリンタのネイティブ ハンドルから TCanvas を作成し、初期化します。
CreateFromWindow
protected
親ウィンドウから TCanvas を作成し、初期化します。
CreateSaveState
protected
SaveStateメソッドが呼び出された際に、TCanvasSaveState オブジェクトを作成します。
DefaultHandler
public
メッセージレコードを処理するメソッドのインターフェースを提供します。
DefineProperties
protected
パブリッシュされていないデータを,敢えて読み書きするためのインターフェースを提供します。
Destroy
public
現在の TCanvas とそのコンポーネントを破壊し、メモリも解放します。
Dispatch
public
Message パラメータの内容に基づいてオブジェクトのメッセージ処理メソッドを呼び出します。
DisposeOf
public
DisposeOf は、オブジェクトのデストラクタコードを、強制実行します。
DoBeginScene
protected
TCanvas オブジェクト上に描画を開始するのに必要な初期化を行います。
DoBlendingChanged
protected
DoCopyBitmap
protected
DoDrawBitmap
protected
DoDrawEllipse
protected
DoDrawLine
protected
DoDrawPath
protected
DoDrawRect
protected
DoEndScene
protected
TCanvas オブジェクト上に描画した後、必要なクリーンアップを行います。
DoFillEllipse
protected
DoFillPath
protected
DoFillRect
protected
DoFillRoundRect
protected
DoFinalizeBitmap
protected
DoInitializeBitmap
protected
DoMapBitmap
protected
DoUnmapBitmap
protected
DrawArc
public
TCanvas 上の楕円形の曲線の一部として、弧を描画します。
DrawBitmap
public
TBitmap イメージから指定された領域を、イメージが TCanvas の指定された領域へスケーリングされた後に描画します。
DrawDashRect
public
DrawEllipse
public
四角形の境界線で定義される楕円を、現在の TCanvas 上に描画します。
DrawLine
public
2 つの点で定義される線を、現在の TCanvas 上に描画します。
DrawPath
public
path を、現在の TCanvas 上に描画します。
DrawPolygon
public
多角形 を、現在の TCanvas 上に描画します。
DrawRect
public
カスタマイズされた角のrectangleを、現在の TCanvas に描画します。
DrawRectSides
public
カスタマイズされた角を持つrectangleの指定された辺を、現在の TCanvas に描画します。
EndScene
public
描画完了したことを TCanvas オブジェクトに通知します。
Equals
public
現在のインスタンスとパラメータが等しいかどうかを調べます。
ExcludeClipRect
public
TCanvas のクリップ領域から四角形領域を除外します。
FieldAddress
public
パブリッシュオブジェクト項目のアドレスを返します。
FillArc
public
TCanvas 上の弧を塗りつぶします。
FillEllipse
public
現在の TCanvas 上に、四角形の境界線で定義される楕円を塗りつぶして描画します。
FillPath
public
現在の TCanvas 上に、パスを塗りつぶし、表示します。
FillPolygon
public
現在の TCanvas 上に、多角形を塗りつぶし、表示します。
FillRect
public
カスタマイズされた角の rectangle を塗りつぶし、現在の TCanvas に表示します。
FillText
public
テキスト文字列を、現在の TCanvasの指定された四角形領域上に表示します。
FinalizeBitmap
public
FontChanged
protected
TFont.OnChanged イベントのディスパッチャです。
Free
public
オブジェクトを破棄し,必要ならば関連付けられているメモリを解放します。
FreeInstance
public
NewInstance メソッドの前回の呼び出しによって割り当てられたメモリを解除します。
GetCanvasScale
protected
GetCanvasStyle
public
GetDisposed
protected
GetHashCode
public
ハッシュ コードを表す整数を返します。
GetInterface
public
指定したインターフェースを取り出します。
GetInterfaceEntry
public
クラス内で実現された特定のインターフェースのエントリを返します。
GetInterfaceTable
public
指定したクラスで実装されているすべてのインターフェースが入った構造体のポインタを返します。
GetNamePath
public
オブジェクトインスペクタに表示されるオブジェクト名を返します。
GetOwner
protected
オブジェクトのオーナーを返します。
InheritsFrom
public
2 つのオブジェクト型の関係を調べます。
Initialize
protected
TCanvas が作成された際に、TCanvas プロパティを初期化します。
InitializeBitmap
public
InitInstance
public
新しく割り当てられたオブジェクトインスタンスをすべて 0 に初期化し,インスタンスの仮想メソッドテーブルポインタを初期化します。
InstanceSize
public
オブジェクト型の各インスタンスのサイズをバイト数で返します。
IntersectClipRect
public
TCanvas の現在のクリップ領域と四角形が、交差することにより描画領域を定義します。
LoadFontFromStream
public
フォント ファミリをストリームからロードします。
MapBitmap
public
MeasureLines
public
指定された四角形に囲まれ、指定されたプロパティを持つ特定のテキストの、行を測定します。
MeasureText
public
指定された揃え位置、フラグ、現在のフォントで表示される、テキスト文字列が TCanvas 上で占める領域を測ります。
MethodAddress
public
名前を指定すると、クラス メソッドのアドレスを返します。
MethodName
public
アドレスを指定すると、クラス メソッドの名前を返します。
MultiplyMatrix
public
Matrix プロパティを拡大させます。
NewInstance
public
オブジェクト型のインスタンスにメモリを割り当て,その新しいインスタンスを指すポインタを返します。
operator ()
public
PtInPath
public
特定の頂点が、TPathData に属しているかどうかを確認します。
QualifiedClassName
public
クラスの修飾名を返します。
QueryInterface
public
指定されたインターフェースをオブジェクトがサポートしている場合,そのインターフェースへの参照を返します。
RestoreState
public
TCanvas の描画と設定済みのプロパティを、保存されている状態まで復元します。
SafeCallException
public
safecall呼び出し規約を使って宣言されたメソッド内での例外を処理します。
SaveState
public
TCanvas の現在の描画と設定済みのプロパティを保存します。
SetCustomDash
public
アウトラインのスタイルをカスタマイズします。
SetMatrix
public
Matrix プロパティを設定します。
SetSize
public
TextHeight
public
現在の Font でレンダリングされるテキストの高さを、ピクセルで返します。
TextToPath
public
揃え位置、現在のフォントが指定されたテキスト文字列から、TPathData を作成します。
TextWidth
public
現在のフォントでレンダリングされるテキストの幅を、ピクセルで返します。
ToString
public
クラス名を表す文字列を返します。
TransformPoint
protected
TransformRect
protected
UnInitialize
protected
UnitName
public
クラスが定義されているユニットの名前を返します。
UnitScope
public
クラスのユニット スコープを返します。
UnmapBitmap
public |
TCanvasのプロパティ
BeginSceneCount
public
BeginScene に対する成功呼び出しのカウンタで、EndScene の呼び出しがあるまで終わりません。
Bitmap
public
Blending
public
ClippingChangeCount
public
Disposed
protected
Disposed は読み取り専用プロパティで、このオブジェクトの現在の状態を示します。
Fill
public
現在の TCanvas に対して、図形と背景を塗りつぶす、色とパターンを指定します。
Font
public
TCanvas 上にテキストを記述する際に使用する、TFont を示します。
Height
public
TCanvas の描画領域の高さを、ピクセルで示します。
Matrix
public
変換マトリックスを示します。
MatrixMeaning
protected
MatrixTranslate
protected
Parent
protected
Quality
public
SavingStateCount
public
Scale
public
Stroke
public
現在の TCanvas 上に形を描画するために使用される、アウトラインの塗りつぶしの TBrush を示します。
StrokeCap
public
線の終端を描画する際に使用される、グラフィックのスタイルを示します。
StrokeDash
public
線のスタイルを示します。
StrokeJoin
public
TCanvas 上に描画された、形または線の分節をつなぐ、結合点のスタイルを示します。
StrokeThickness
public
現在の TCanvas 上に描画される形の、ストローク アウトラインの幅を示します。
Width
public
TCanvas の描画領域の幅を、ピクセルで示します。 |
|
|
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
>DelphiXE3
>DelphiXE4
△TOP
▲2015/04/08
2015/04/09
▼2015/04/10
シェアウェア
Script!World
データベース
|