AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
DelphiXE3 [FMX]イメージコントロール(ImageControl) 2013/09/30
 
前頁で[Standard]内の「Label」(ラベル)について書きましたので次は、同じく[Standard]内の「ImageControl」(イメージコントロール)です。VCLでいうImageコンポーネントでしょうか?
   【Delphi2010の記事はこちら】
   【DelphiXE3[VCLアプリケーション]の記事はこちら】
 
 


(ヘルプより)
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 に関係する追加形式は以下のとおりです。
  JPEG XR(.hdp、.jxr、.wdp)
  ICO
Windows での GDI+ に関係する追加形式は以下のとおりです。
  WMF
  ICO
OS X での追加形式は以下のとおりです。
  JPEG 2000(.jp2)
  PSD
  TGA
  ICNS
 
とりあえず、イメージコントロールを配置し、オブジェクトインスペクタで Bitmapプロパティの右横の[…]ボタンをクリックしてみます。
「編集」を選びます。
ビットマップエディタ画面が表示されます。
 
[読み込み]ボタンをクリックします。
画像ファイルを「開く」画面が表示されます。
 
ビットマップ(BMP)、
JPEG、PNG、GIF、TIFF、アイコン(ICO)、WMP、のうちから選択出来る様子です。
Windows7のサンプルピクチャの「アジサイ.jpg」を指定して開いてみます。
画像ファイルを開くと、ビットマップエディタ画面に表示されます。
[合わせる]ボタンをクリックすると、画像全体が表示される状態となります。
 
とりあえずこの状態で[OK]ボタンをクリックします。
配置したイメージコントロールに指定した画像が全体表示されている状態となっています。
保存・コンパイル・実行をしてみます。
 
イメージコントロールをダブルクリックすると、画像ファイルの選択を行う事が出来、別の画像を表示させる事が出来ます。
 
Windowsメタファイルは指定出来ないようですね。
 
例えば下記のようにコンポーネントを配置してボタンをクリックした時のイベントを下記のようにします。

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
  最初のデストラクタが実行される前に応答します。
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 パラメータの内容に基づいてオブジェクトのメッセージ処理メソッドを呼び出します。
Equals
  public
  現在のインスタンスとパラメータが等しいかどうかを調べます。
FieldAddress
  public
  パブリッシュオブジェクト項目のアドレスを返します。
FlipHorizontal
  public
  TBitmap イメージを、水平にフリップさせます。
FlipVertical
  public
  TBitmap イメージを、垂直にフリップさせます。
Free
  public
  オブジェクトを破棄し,必要ならば関連付けられているメモリを解放します。
FreeInstance
  public
  NewInstanceメソッドの前回の呼び出しによって割り当てられたメモリを解除します。
FreeNotification
  protected
  TBitmap が破壊される旨の通知を、特定のオブジェクトが確実に受けられるようにします。
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
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
Rotate
  public
  現在の TBitmap イメージを、特定の角度回転させます。
SafeCallException
  public
  safecall呼び出し規約を使って宣言されたメソッド内での例外を処理します。
SaveToFile
  public
  現在の TBitmap をファイルへ保存します。
SaveToStream
  public
  現在のの TBitmap を TStream に保存します。
SetSize
  public
  現在の TBitmap のサイズを設定します。これは、Height と Width で定義されます。
ToString
  public
  クラス名を表す文字列を返します。
UnitName
  public
  クラスが定義されているユニットの名前を返します。
UnitScope
  public
  クラスのユニット スコープを返します。
Unmap
  public
 
TBitmapのイベント
OnChange
  public
  TBitmap が変更された際に発生します。
 
TBitmapのプロパティ
Canvas
  public
  現在の TBitmap を表す描画面へのアクセスを提供します。
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 オブジェクトに通知します。
ClassInfo
  public
  オブジェクト型の実行時型情報(RTTI)テーブルのポインタを返します。
ClassName
  public
  引数で渡される変数の型ではなくオブジェクトインスタンスの型を示す文字列を返します。
ClassNameIs
  public
  オブジェクトが指定の型かどうかを示します。
ClassParent
  public
  1 つ上位のクラスの型を返します。
ClassType
  public
  オブジェクトのクラスへのクラス参照を返します。
CleanupInstance
  public
  クラス内の長い文字列とバリアントとインターフェース変数に対する終了処理を実行します。
Clear
  public
  TCanvas オブジェクトの表面のクリアします。
ClearRect
  public
  TCanvas オブジェクトから、四角形の領域をクリアします。
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 パラメータの内容に基づいてオブジェクトのメッセージ処理メソッドを呼び出します。
DoBeginScene
  protected
  TCanvas オブジェクト上に描画を開始するのに必要な初期化を行います。
DoDrawBitmap
  protected
DoDrawEllipse
  protected
DoDrawLine
  protected
DoDrawPath
  protected
DoDrawRect
  protected
DoEndScene
  protected
  TCanvas オブジェクト上に描画した後、必要なクリーンアップを行います。
DoFillEllipse
  protected
DoFillPath
  protected
DoFillRect
  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
FlushBufferRect
  public
  カラー データのビット ブロックを、指定されたデバイス コンテキストにコピーします。
FontChanged
  protected
  TFont.OnChanged イベントのディスパッチャです。
Free
  public
  オブジェクトを破棄し,必要ならば関連付けられているメモリを解放します。
FreeBuffer
  protected
  現在の TCanvas のバッファを解放します。
FreeInstance
  public
  NewInstance メソッドの前回の呼び出しによって割り当てられたメモリを解除します。
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
  指定されたインターフェースをオブジェクトがサポートしている場合,そのインターフェースへの参照を返します。
ResizeBuffer
  public
  バッファをサイズ変更します。
RestoreState
  public
  TCanvas の描画と設定済みのプロパティを、保存されている状態まで復元します。
SafeCallException
  public
  safecall呼び出し規約を使って宣言されたメソッド内での例外を処理します。
SaveState
  public
  TCanvas の現在の描画と設定済みのプロパティを保存します。
SetCustomDash
  public
  アウトラインのスタイルをカスタマイズします。
SetMatrix
  public
  Matrix プロパティを設定します。
TextHeight
  public
  現在の Font でレンダリングされるテキストの高さを、ピクセルで返します。
TextToPath
  public
  揃え位置、現在のフォントが指定されたテキスト文字列から、TPathData を作成します。
TextWidth
  public
  現在のフォントでレンダリングされるテキストの幅を、ピクセルで返します。
ToString
  public
  クラス名を表す文字列を返します。
UnInitialize
  protected
UnitName
  public
  クラスが定義されているユニットの名前を返します。
UnitScope
  public
  クラスのユニット スコープを返します。
UnmapBitmap
  public
 
TCanvasのプロパティ
BeginSceneCount
  public
  BeginScene に対する成功呼び出しのカウンタで、EndScene の呼び出しがあるまで終わりません。
Bitmap
  public
Buffered
  public
  TCanvas が別個のバッファを使用するかどうかを、使用するデバイス(GDI+, D2D)によって指定します。
BufferHandle
  public
  デバイス コンテキストのハンドルへのポインタです。
ClippingChangeCount
  public
Fill
  public
  現在の TCanvas に対して、図形と背景を塗りつぶす、色とパターンを指定します。
Font
  public
  TCanvas 上にテキストを記述する際に使用する、TFont を示します。
Height
  public
  TCanvas の描画領域の高さを、ピクセルで示します。
Matrix
  public
  変換マトリックスを示します。
SavingStateCount
  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
▲2013/09/29
 2013/09/30
▼2013/10/01
 
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.