Simplest solution, use TImageEnMView.PaintTo:
ImageEnView1.IEBitmap.Allocate(ImageEnMView1.Width, ImageEnView1.Height);
ImageEnMView1.PaintTo( ImageEnView1.Bitmap );
ImageEnView1.Update();
Advanced solution (I prefer this), draw each image:
var
i: integer;
row, col: integer;
imageWidth, imageHeight: integer;
thumbWidth, thumbHeight: integer;
rowCount, colCount: integer;
bmp: TIEBitmap;
begin
// you may want to change these
imageWidth := 1000;
imageHeight := 1000;
thumbWidth := ImageEnMView1.ThumbWidth;
thumbHeight := ImageEnMView1.ThumbHeight;
colCount := imageWidth div thumbWidth;
rowCount := ImageHeight div thumbHeight;
ImageEnView1.IEBitmap.Allocate(imageWidth, imageHeight);
row := 0;
col := 0;
for i:=0 to ImageEnMView1.ImageCount-1 do
begin
bmp := ImageEnMView1.GetTIEBitmap(i);
bmp.RenderToTIEBitmapEx(ImageEnView1.IEBitmap,
col * thumbWidth, row * thumbHeight,
thumbWidth, thumbHeight,
0, 0, bmp.Width, bmp.Height,
255, rfFastLinear, ielNormal);
ImageEnMView1.ReleaseBitmap(i);
inc(col);
if col = colCount then
begin
col := 0;
inc(row);
if row = rowCount then
break;
end;
end;
ImageEnView1.Update();
end;
You may want to add code to display text, to add space between images and to respect aspect ratio.