标签: timage

如何在Delphi中调整大小的TImage的整个区域?

我已经将我TImage.Canvas在Delphi 2009中绘制的问题缩小到以下可重现的案例:

鉴于:一种形式,一个TImage,TLabelTButton在其上.它TImage被锚定到所有四个边缘,以便调整窗体大小将调整大小TImage.我希望能够做的是Image1在调整大小后使用可用的最大区域.所以在我的测试用例中,我在Button的OnClick处理程序中有以下代码:


procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption:= IntToStr (Image1.Width)+' x '+IntToStr(Image1.Height);
  Image1.Canvas.Pen.Color:= 0;
  Image1.Canvas.Rectangle(0,0,Image1.Width, Image1.Height);
end;
你会看到,如果窗体大小,Image1.Width.Height改变预期,但如果调整的形式是绘制矩形较大比原来的,将是不完整的,只对在那里以前同一区域绘制.

如何使用整个调整大小的区域?

对于它的价值,在我玩过的原始问题中Image1.Stretch,这允许我在调整大小时使用更多区域,但会导致我的图形被扭曲(不需要).如果我也使用Image1.Proportional,那么它会更好,但我仍然无法使用可用的完整区域.Image1.AutoSize似乎也没有对我做任何有用的事情.

任何帮助赞赏.

delphi timage

4
推荐指数
1
解决办法
6527
查看次数

TImage的透明度

创建新的TImage时,它是透明的.在将对象绘制到此图像后,我想清除它们.请注意,我需要保持图像透明,因为TImage被用作另一个图像的叠加层.

TImage的某种"清晰"功能是最好的.我想我在这里缺少一些简单的东西,我在TImage菜单中找不到任何明确的功能.

delphi timage

3
推荐指数
1
解决办法
1257
查看次数

如何在TImage中平铺图像?

如何TImage在Delphi中平铺图像?

为什么我需要它:我可以在运行时创建一个并存储我的图像,而不是在运行时创建更多的TImages,因为它知道它将"适合"直到达到TImage的高度和宽度.

请提出任何建议.

谢谢!

编辑:请注意,我不是要求拉伸图像,而是通过重复图像填充画布.

delphi vcl timage delphi-2009

3
推荐指数
3
解决办法
5371
查看次数

使用delphi缩放图像

我正在使用delphi.我有TImage,我为其分配了一个位图.

imgmain.Picture.Bitmap := bmpMain;
imgmain.Picture.Bitmap.PixelFormat := pf24bit;
Run Code Online (Sandbox Code Playgroud)

imgmain是TImage的对象,bmpMain是TBitmap的对象

我想缩放我的图像.我的表单上有一个轨迹栏,当我点击轨迹栏时,图像应该变焦.我该怎么办?
谢谢.

编辑:
我在这里找到了一些解决方案它有效,但它削减了我的形象.

delphi timage

3
推荐指数
1
解决办法
1万
查看次数

delphi 7 TImage和TImageList

让我是整数私人

代码

procedure TForm1.Image1Click(Sender: TObject);
begin
  inc(i);
  ImageList1.GetIcon(i mod 4,Image1.Picture.Icon);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  i:=0;
  ImageList1.GetIcon(i mod 4,Image1.Picture.Icon);
end;
Run Code Online (Sandbox Code Playgroud)

如何从列表中拉伸图标以适合Image1的大小?

delphi timage delphi-7 timagelist

3
推荐指数
1
解决办法
2548
查看次数

为什么这个D2006代码不能淡化PNG图像?

这个问题来自较早的问题.大多数代码来自可能在后续版本的Delphi中使用的建议答案.在D2006中,我没有获得全范围的不透明度,图像的透明部分显示为白色.

图片来自http://upload.wikimedia.org/wikipedia/commons/6/61/Icon_attention_s.png.
它在运行时从PNGImageCollection加载到TImage中,因为我发现你必须这样做,因为在保存DFM后图像不会保持不变.出于演示行为的目的,您可能不需要PNGImageCollection,并且可以在设计时将PNG图像加载到TImage中,然后从IDE运行它.

表单上有四个按钮 - 每个按钮设置不同的不透明度值.Opacity = 0工作正常(paintbox图像不可见,opacity = 16看起来没问题,除了白色背景,不透明度= 64,255相似 - 不透明度似乎在10%左右饱和.

关于什么事情的任何想法?

unit Unit18;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, pngimage, StdCtrls, Spin, PngImageList;

type
  TAlphaBlendForm = class(TForm)
    PaintBox1: TPaintBox;
    Image1: TImage;
    PngImageCollection1: TPngImageCollection;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure PaintBox1Paint(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    FOpacity : Integer ;
    FBitmap  : TBitmap ;
    { …
Run Code Online (Sandbox Code Playgroud)

delphi png timage alphablending delphi-2006

3
推荐指数
1
解决办法
1198
查看次数

Delphi XE 3形式的GIF动画

可能重复:
如何在delphi形式中使用动画Gif

我最近将我的Delphi 7版本更新为Delphi XE3.

使用Delphi 7,我使用一个组件在TImage上放置一个GIF,delphi XE3已经与gif兼容,没有必要安装任何额外的第三方组件.

我的问题是:当我将gif附加到TImate时,它变为静态,仅显示第一帧.

这有什么命令吗?喜欢Image1.Play还是什么?

delphi animation timage gif delphi-xe3

3
推荐指数
2
解决办法
8696
查看次数

如何在TImage上正确显示带alpha通道的TBitmap?

我有一个TBitmap,其中包含带alpha通道的半透明图像(在本例中我是从TPngImage获得的).

var
  SourceBitmap: TBitmap;
  PngImage: TPngImage;
begin
  PngImage := TPngImage.Create();
  SourceBitmap := TBitmap.Create();
  try
    PngImage.LoadFromFile('ImgSmallTransparent.png');
    SourceBitmap.Assign(PngImage);
    SourceBitmap.SaveToFile('TestIn.bmp');
    imgSource.Picture.Assign(SourceBitmap);
  finally
    PngImage.Free();
    SourceBitmap.Free();
  end;
Run Code Online (Sandbox Code Playgroud)

当我将此TBitmap保存到TestIn.bmp文件并使用任何图像查看器打开它时,我可以看到透明度.但是当我将它分配给TImage时,透明像素显示为黑色(TImage有Transparent = True).

如何在TImage上正确显示具有透明度的TBitmap?

delphi gdi timage tbitmap

3
推荐指数
1
解决办法
6043
查看次数

如果Delphi应用程序有许多TImage组件,我怎么能保持它的大小?

我想用Delphi制作一个应用程序.问题是我将有很多TImage组件 - 这将使exe大小非常大.到目前为止,我的exe是20MB大,我只完成了主页,根据我的计算,exe单独的大小将超过10GB - 这太过分了.

如何制作具有数百/数千张图像的应用程序,同时让exe的尺寸变小?

delphi timage

3
推荐指数
1
解决办法
658
查看次数

向Delphi的TImage添加AlphaBlendValue属性的最简单方法是什么?

如果有可疑的参数值,则会在对话框中显示"警告"图像.用户并不总是会注意到它,所以我想在一秒左右的时间内循环淡入淡出(是的,我可以切换Visible属性,但这看起来有点像我只是切换Visible属性).有没有比将它放在自己的表单上并将其浮动在对话框上(以及更改表单的AlphaBlendValue属性)更简单的方法?

delphi transparency timage alphablending delphi-2006

2
推荐指数
1
解决办法
1237
查看次数