Ok thanks for the new lib, I'll include it in next Imaging release.
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
//{$DEFINE DONT_LINK_EXTRAS}
(along with other stuff you don't need).
var
Stream: TStream;
CanvasPage: TImagingCanvas;
Watermark: TSingleImage;
CanvasWater: TImagingCanvas;
R: TRect;
begin
Stream := TResourceStream.Create(HInstance, 'ImageWatermark', RT_RCDATA);
Watermark := TSingleImage.CreateFromStream(Stream);
Stream.Free;
CanvasWater := TImagingCanvas.CreateForImage(Watermark);
// Page.Image is a TSingleImage instance
CanvasPage := TImagingCanvas.CreateForImage(Page.Image);
if Page.Width > Page.Height then
R := Rect(Round(Page.Width * 0.6), 0, Page.Width, Page.Height)
else
R := Rect(Round(Page.Width * 0.45), 0, Page.Width, Page.Height);
R := ScaleRectToRect(Watermark.BoundsRect, R);
R := Rect(R.Left, Page.Height - (R.Bottom - R.Top), R.Right, Page.Height);
CanvasWater.StretchDrawAlpha(Watermark.BoundsRect, CanvasPage, R);
... save to file, free canvases etc.
var
XRes, YRes: Single;
begin
... load image
if GlobalMetadata.GetPhysicalPixelSize(ruDpi, XRes, YRes) then
... do something with DPI info
var
Img, OutImg: TSingleImage;
Canvas, OutCanvas: TImagingCanvas;
I: Integer;
begin
Img := TSingleImage.CreateFromFile('data\Tigers.png');
Img.Format := ifA8R8G8B8;
Canvas := TFastARGB32Canvas.CreateForImage(Img);
OutImg := TSingleImage.CreateFromImage(Img);
OutCanvas := TFastARGB32Canvas.CreateForImage(OutImg);
OutCanvas.FillColor32 := pcBlack;
OutCanvas.Clear;
I := 0;
Canvas.FillChannel(ChannelAlpha, I);
while I <= 255 do
begin
OutCanvas.Clear;
Canvas.FillChannel(ChannelAlpha, I);
Canvas.DrawAlpha(Img.BoundsRect, OutCanvas, 0, 0);
DisplayImage(PaintBox.Canvas, 0, 0, OutImg);
Inc(I, 1);
end;
end;
glAlphaFunc( GL_GREATER, 0 );
glEnable( GL_ALPHA_TEST );
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
or glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA)
QuoteBy file format I've meant the format of data A8R8G8B8 or something like that.
Page created in 0.012 seconds with 15 queries.