[delphi-users:2939] TImageかTImageViewerに画像を表示した時の背景色

856 views
Skip to first unread message

Delフサギコ

unread,
Jan 3, 2013, 9:08:27 PM1/3/13
to DelphiML
こんにちは。あけましておめでとうございます。

年末のキャンペーンで
Delphi XE3を買ったので使っています。とてもおもしろいです。
(各種設定が移行できないのがつらい...
 どこかのIDE)拡張にその手のツールがあった気がするなあ...

TImageでも、TImageViewerでもよいのですが
  ImageViewer1.Bitmap.LoadFromFile(FileName);
  ImageViewer1.BestFit;
とすると、コントロール内にぴったり画像が収まり便利ですが
背景が白色になってしまいます。

Formに直接貼り付けているのですが、
Form.Fill.Colorを設定してもうまくいかず
ImageViewer.BackgroundFill.Colorを設定してもうまくいきません。

非常に簡単な事のような気がするのですが、設定が見あたりませんでした
どのようにするのかご存知の方おられましたら教えてください。

よろしくお願いします。

--
Delフサギコ  ミ・д・彡 <delfu...@gmail.com>
(ホンモノの方です。Twitterはやっていません)


DEKO

unread,
Jan 4, 2013, 12:32:22 AM1/4/13
to delphi...@freeml.com
こんにちは。

> TImageでも、TImageViewerでもよいのですが
> ImageViewer1.Bitmap.LoadFromFile(FileName);
> ImageViewer1.BestFit;
> とすると、コントロール内にぴったり画像が収まり便利ですが
> 背景が白色になってしまいます。

TImage は透過しますよ。詳細は以下を参照して下さい。

[要注意コンポーネント (2)]
http://edn.embarcadero.com/article/images/42116/T4.pdf#page=20

[TImage (Shapes)]
http://ht-deko.minim.ne.jp/techf001_shapes.html#TImage

[TImageControl (Standard)]
http://ht-deko.minim.ne.jp/techf001_standard.html#TImageControl

[TImageViewer (Additional)]
http://ht-deko.minim.ne.jp/techf001_additional.html#TImageViewer

[TPaintBox (Shapes)]
http://ht-deko.minim.ne.jp/techf001_shapes.html#TPaintBox

--
by DEKO
-----------------------------
http://ht-deko.minim.ne.jp/
de...@ht-deko.minim.ne.jp
-----------------------------


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
いつでもどこでもメールチェック!freemlのスマートフォンアプリ
http://ad.freeml.com/cgi-bin/sa.cgi?id=juGZL
------------------------------------------------------[freeml byGMO]--

Delフサギコ

unread,
Jan 4, 2013, 3:21:48 AM1/4/13
to DelphiML
お世話になります。

確かに、TImageは背景が透けました。
TImageViewerとTImageで切り替えたり、Formの色を変えたりしていたので
気がつきませんでした。
ありがとうございます。

拡大縮小も実装してみたいので
TImageViewerで背景が透ける方法や
TImageViewerの背景色を変更する方法を、

わかるかたおられましたら教えてください。


TImageViewerだと、ノンコーディングで
マウスでの移動や拡大縮小できるので便利そうですが
移動後に拡大縮小してもズーム中心点が画像中央固定なので
自前で実装した方が早いかもしれないですね...


--
Delフサギコ  ミ・д・彡 <delfu...@gmail.com>



2013/1/4 DEKO <delphi...@freeml.com>

Amadare

unread,
Jan 4, 2013, 4:53:34 AM1/4/13
to delphi...@freeml.com
皆様、明けましておめでとうございます。

解決方法じゃない発言で申し訳ないのですが...。

そもそも、インスペクタのプロパティの方を弄っても
何の反映もされないのは、正常なのでしょうか?
一応、Update1は当ててあるのですが。



MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
かわいいベジモンがたくさん!自分だけの農場を作ろう!
http://ad.freeml.com/cgi-bin/sa.cgi?id=juJ9n
------------------------------------------------------[freeml byGMO]--

DEKO

unread,
Jan 4, 2013, 6:02:48 AM1/4/13
to delphi...@freeml.com
こんにちは。

> そもそも、インスペクタのプロパティの方を弄っても
> 何の反映もされないのは、正常なのでしょうか?
> 一応、Update1は当ててあるのですが。

(紛らわしい名前ですけど) 正常です。

BackgroundFill を有効にするためには、ShowBackGround を有効にする必要があります。
そして、ここで言っている "Background" とは、画像の透過色が指定された部分の事を指しています。

[FMX.ExtCtrls.TImageViewer.BackgroundFill]
http://docwiki.embarcadero.com/Libraries/XE3/ja/FMX.ExtCtrls.TImageViewer.BackgroundFill

--
by DEKO
-----------------------------
http://ht-deko.minim.ne.jp/
de...@ht-deko.minim.ne.jp
-----------------------------


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
アイテムたくさん☆freemlのプロフィール画像をアバターに♪
http://ad.freeml.com/cgi-bin/sa.cgi?id=juKsM
------------------------------------------------------[freeml byGMO]--

DEKO

unread,
Jan 4, 2013, 7:11:35 AM1/4/13
to delphi...@freeml.com
こんにちは。

> 拡大縮小も実装してみたいので
> TImageViewerで背景が透ける方法や
> TImageViewerの背景色を変更する方法を、
> わかるかたおられましたら教えてください。

・ワークスペースを透過
カスタムスタイルを作成し、
imageviewer1style > background の SourceLookup を空にしてみてください。
デフォルトスタイル (スタイル未指定) ならば、これで背景が透過になると思います。

・ワークスペースの色を変更
上の透過の設定を行った上で、
imageviewer1style > background > content の下に TRectangle をぶらさげ、
Align を alClient にした上で、Fill.Color / Stroke.Color を変更してみてください。

--
by DEKO
-----------------------------
http://ht-deko.minim.ne.jp/
de...@ht-deko.minim.ne.jp
-----------------------------


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
ニコラスケイジ主演映画「ゴーストライダー」試写会にご招待
http://ad.freeml.com/cgi-bin/sa.cgi?id=juKZr
------------------------------------------------------[freeml byGMO]--

ishida

unread,
Jan 4, 2013, 8:29:16 AM1/4/13
to delphi...@freeml.com
ファイルからメージを取得した時に、ターゲットのコントロールの大きさに
イメージを調整する方法もありますよ。
拡大縮小は、こちらのHPを参考にしました。
JPGからビットマップに変換してこのサブルーチンに渡しています。
高さが合うように、縮尺はzoomYに設定して渡しています。
 
procedure TFrmStudent.btnLoadImgClick(Sender: TObject);
var
 jpg: TJpegImage;
  BM: TBitmap;
begin
  inherited;
 jpg := TJpegImage.Create;
  BM := TBitmap.Create;
  try
    if OpenPictureDialog1.Execute then
    begin
    jpg.LoadFromFile(OpenPictureDialog1.FileName);
    BM.Assign(jpg);
    imgBuf.Picture.Assign(BM);
    zoomY := Trunc(imgBuf.Picture.Bitmap.Height *  imgPHOTO.Width / imgBuf.Picture.Bitmap.Width);
    BM := BitmapResize_Bicubic(imgBuf.Picture.Bitmap,imgPHOTO.Width,zoomY);
    jpg.Assign(BM);
    imgPHOTO.Picture.Assign(jpg);
    end;
  finally
    jpg.Free;
    BM.Free;
  end;
end;

Amadare

unread,
Jan 4, 2013, 8:56:19 AM1/4/13
to delphi...@freeml.com
DEKOさん、回答ありがとうございます。(横からですみません)

> BackgroundFill を有効にするためには、ShowBackGround を有効にする必要があります。

これで、一つは私も希望の動作にはなりましたが...。
(コントロール自身の色や、画像同士...は、別途ですね)

Firemonkeyは色々と難しそうですね。今までのvclのルール(?)とは違った
方法で実装しなければならなそうですし。似て異なる部分が結構有り、
その度にhelpやwikiは読んでるんですけれど。
標準的な考え方が纏まった説明が何処かに有ると良いんですが。

pro版以上なら、FMX.xxx~のソースも覗けるんでしょうか。



MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
使い方はいろいろ♪一部のメンバーだけにMLメールを送ろう!
http://ad.freeml.com/cgi-bin/sa.cgi?id=juMh8
------------------------------------------------------[freeml byGMO]--

DEKO

unread,
Jan 4, 2013, 4:03:24 PM1/4/13
to delphi...@freeml.com
こんにちは。

> pro版以上なら、FMX.xxx~のソースも覗けるんでしょうか。

見れますよー♪

--
by DEKO
-----------------------------
http://ht-deko.minim.ne.jp/
de...@ht-deko.minim.ne.jp
-----------------------------


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
メンバーで使える掲示板を活用しよう!
http://ad.freeml.com/cgi-bin/sa.cgi?id=juNLu
------------------------------------------------------[freeml byGMO]--

DEKO

unread,
Jan 4, 2013, 4:05:47 PM1/4/13
to delphi...@freeml.com
詳細を以下にまとめておきました。参考になれば...

[要注意コンポーネント (2) - DEKO のアヤシいお部屋]
http://ht-deko.minim.ne.jp/ft1301.html#130105_01

--
by DEKO
-----------------------------
http://ht-deko.minim.ne.jp/
de...@ht-deko.minim.ne.jp
-----------------------------


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
メールだけでみんなを招待できる便利機能♪
http://ad.freeml.com/cgi-bin/sa.cgi?id=juNLH
------------------------------------------------------[freeml byGMO]--

Amadare

unread,
Jan 5, 2013, 1:23:30 PM1/5/13
to delphi...@freeml.com
DEKOさん、詳しい説明ありがとうございます~。

ついつい、Delphiは使い続けてますので、忘れて読むのを飛ばしてましたが、
製品付属のドキュメント(ヘルプ)にFiremonkeyについての基本的な事は網羅
されてたんですね…。
ex.「FireMonkey アプリケーションのデザインをカスタマイズする」

ただ、それぞれのコンポーネントについてのスタイル変更による挙動までは
網羅されてないのが残念です。
(そこで、DEKOさんのBlogの説明が助かります!!)

参考にさせて頂きます。

 Amadare

DEKO <delphi...@freeml.com>さん:
> 詳細を以下にまとめておきました。参考になれば...
>
> [要注意コンポーネント (2) - DEKO のアヤシいお部屋]
> http://ht-deko.minim.ne.jp/ft1301.html#130105_01
>
> --
> by DEKO
> -----------------------------
> http://ht-deko.minim.ne.jp/
> de...@ht-deko.minim.ne.jp
> -----------------------------


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
練習や試合の予定調整は「とっとと決め太郎」におまかせ!
http://ad.freeml.com/cgi-bin/sa.cgi?id=juZfn
------------------------------------------------------[freeml byGMO]--

Delフサギコ

unread,
Jan 6, 2013, 11:57:29 AM1/6/13
to DelphiML
お世話になりまーす。
DEKOさん、
まとめてくださって、とてもありがとうございます。

あまりさわれる時間がなかったので
なかなかImageViewerの背景透過までできず
カスタムスタイル側の設定操作と
コントロール側のStyleLookupとの関係性がわからなくて
すごく理解しづらいものを感じていましたが

実際に動作している画面を見せていただけると
すっきりとわかり、実装できました。

すごく参考になる資料です。すばらしいっす。

ishidaさんも、拡大縮小コードありがとうございます。
試して動かしてみます。
リンクみるとあの有名なページの作者さんではないですか!
大変お世話になっております。
ありがとうございます。

Amadareさんと同じく
FireMonkey。結構、苦戦してます。
細かい制御が慣れません。

Update1があたってないと
C:\Users\Public\Documents\RAD Studio\10.0\Samples
このあたりのコードも動かないみたいですね。
ここみて何が出来るのかを見て勉強しています。
それでも苦戦するけれども。


ま、.NET の WPF の XAML の
あの腐ったライブラリほどではないか...(w
Reply all
Reply to author
Forward
0 new messages