首页 > 其他分享 >在指定图片上绘制透明文字

在指定图片上绘制透明文字

时间:2023-08-16 16:57:00浏览次数:42  
标签:透明 Canvas end jp 指定 Free bmp 绘制 Assign

function TForm1.DrawPicToStrSave(strFarImg1, strFont1,
strSavePath: string): TBitMap;
var
jp1, jp: TJPEGImage;
bmp_t: TBitmap;
begin
try
jp1 := TJPEGImage.Create;
jp := TJPEGImage.Create;
bmp_t := TBitmap.Create;
try
jp1.LoadFromFile(strFarImg1);
try
if (jp1.Width > 0) or (jp1.Height >0) then begin
bmp_t.Assign(jp1);
bmp_t.Transparent := True;
bmp_t.Canvas.Font.Color :=clRed; // 新建个水印字体颜色
bmp_t.Canvas.Pen.Style:=psClear;
bmp_t.Canvas.Brush.Style := bsClear;
bmp_t.Canvas.Font.Size := 18;
bmp_t.Canvas.Font.Name := 'System';
bmp_t.Canvas.TextOut(0,5,strFont1); // 加入文字
jp.Assign(bmp_t);
jp.SaveToFile(strSavePath);
Result := bmp_t;
end;
bmp_t.Assign(jp);
Image1.Picture.Bitmap.Assign(bmp_t);
finally
if assigned(bmp_t) then
bmp_t.Free;
end;
finally
jp1.Free;
jp.Free;
end;

except
Result := nil;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
DrawPicToStrSave('D:\aa.jpg','delphi网','D:\a1.jpg');
end;

标签:透明,Canvas,end,jp,指定,Free,bmp,绘制,Assign
From: https://www.cnblogs.com/lucken2000/p/17635531.html

相关文章

  • cuda 卸载和安装指定(Ubuntu)
    问题:安装apex的时候发现pytorch的cuda版本和机器上cuda版本不一致,导致报错解决方案:卸载cuda并重新安装指定版本的cuda(卸载12.0版本,安装11.7版本)解决过程:1.卸载旧版cuda参考网站:HowtoCompletelyRemoveCUDAfromUbuntu|SaturnCloudBlog然后重启电脑2.安装新的版本......
  • window 下查看指定程序的 CPU 使用情况
    1、开发环境:window10+QtCreator4.8.2+Qt5.12.22、开发背景:满足查看指定程序运行过程中的CPU使用情况3、实现方法:(1)通过程序名获取进程ID(2)获取CPU核心数量(3)获取进程运行时间(4)统计进程运行时的CPU使用率并保存(5)实现代码和配置文件如下//#inc......
  • Duilib VerticalLayout 滚动条绘制出错问题
    发现一个奇怪的问题,某个VerticalLayout添加多个控件,滚动条能正常显示但是滚动的时候,绘制出错,如下图: 后来发现xml添加属性bkcolor="#FF0F1415"后正常,应该是缺少bkcolor属性导致绘制异常 记录一下~......
  • 在多个版本python中指定安装第三方库,以及调用
    1.很多开发需求的时候,会需要不同版本的python,比如说pytorch的时候需要3.9以及对应的版本,某个需求指定3.8版本,所以现在拥有很多个python,但是又不统一相应的库。2.步骤:①如何查看自己默认版本在命令行(Win+R)的情况直接python--version②如何调用某一个......
  • VTK 实例68:透明度
    1#include<vtkAutoInit.h>2VTK_MODULE_INIT(vtkRenderingOpenGL2);3VTK_MODULE_INIT(vtkRenderingVolumeOpenGL2);4VTK_MODULE_INIT(vtkRenderingFreeType);5VTK_MODULE_INIT(vtkInteractionStyle);67#include<vtkSmartPointer.h>......
  • QT使用QML实现地图绘制虚线
    QML提供了MapPolyline用于在地图上绘制线段,该线段是实线,因此我使用Canvas自定义绘制的方式在地图上绘制线段,如图:鼠标在地图上点击后,在点击位置添加图标,当有多个图标被添加到地图上后,计算各个图标间的距离,并创建一个新的虚线线段组件,连接两个图标点,显示距离数值。如果对自定义图标......
  • MSP 客户端打开指定外部程序
    functionshowMedi(){if(typeofwindow.cefSharpExample!="undefined"){varpath="D:\\WebApp.exe",window.cefSharpExample.showExe(path)}else{alert("可能无权限,请用客户端程序操作!");}}......
  • C# WINFORM 屏幕绘画+透明窗体+鼠标穿透
    通过长时间研究终于找到关于在C#WINFORM下制作真正的透明窗体在系统桌面上画图的完美解决方案;可以避免解决与其网上其它画图工具的很多不足,网上实现思路如下几种:1、使用API透明窗体+底层鼠标钩子可以实现,但要重新实现鼠标的监听操作,实再太麻烦了;2、使用第三方透明窗体控件(如La......
  • RGBA alpha 透明度混合算法
        Alpha透明度混合算法,网上收集整理,分成以下三种:一、R1,G1,B1,Alpha1为前景颜色值,R2,G2,B2,Alpha2为背景颜色值,则    前景色 R=R1*Alpha1+R2*Alpha2*(1-Alpha1);          G=G1*Alpha1+G2*Alpha2*(1-Alpha1); ......
  • C# 桌面上直接绘制/在屏幕上绘图和清除
    1、名字空间 usingSystem.Runtime.InteropServices;2、API函数申明[DllImport("user32.dll",CharSet=CharSet.Auto,ExactSpelling=true)]publicstaticexternIntPtrGetDesktopWindow();//该函数返回桌面窗口的句柄。[DllImport("user32.dll",EntryPoint="......