com.sun.image.codec.jpeg.JPEGCodec; //import com.sun.image.codec.jpeg.JPEGImageEncoder; /** * 说明:图片水印处理类 (String imagePath){ //文字水印 if(null ! imagePath, "", 1, Color.RED,Integer.parseInt(strFW[2]), Integer.parseInt(strFW[3]), Integer.parseInt(strFW[4] )); //文字 } } } //图片水印 if(null ! equals(strIWATERM)){ String strIW[] = strIWATERM.split(",fh,"); if(strIW.length == 4){ if
image.size[0] * 3, image.size[1] * 3), (255, 255, 255, 255)) new_img.paste(image, image.size) # 添加水印 Image.new('RGBA', rgba_image.size, (0, 0, 0, 0)) image_draw = ImageDraw.Draw(text_overlay) # 水印数量 text}, font:{font}') image_draw.text((i, j), text, font=font, fill=(0, 0, 0, 50)) # 水印文字角度 image.size[1] * 2)) return image_with_text if __name__ == '__main__': pic = '1.png' # 需要加水印的图片 text = "我是水印" # 水印文字 fontsize = 32 # 文字大小 img = Image.open(pic) fill_img
前言:本文探讨的是利用pageEvent事件在生成PDF文件的过程中把图片水印加好,这样导出的是加好水印的pdf文件。 1:加入依赖 <! artifactId>itext-asian</artifactId> <version>5.2.0</version> </dependency> 2:准备好水印图片 ,将图片拷贝到项目中 3:代码示例,利用pageEvent事件加水印 定义事件类 package itextpdf; import com.itextpdf.text.Document; import 添加事件,注意要加在document.open()之前 //创建document Document document = new Document(PageSize.A4) document.close() 4,效果展示 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144913.html原文链接:https://javaforall.cn
现在很多人都在使用小红书app,但大家肯定都会有同一个问题,图片怎么保存,重点是怎么保存图片无水印。看到好看的图片想保存下来,可是却不喜欢看到有水印。 下载完图片它会自动保存一个文件夹,我们打开文件夹可以看到里面的图片都没有水印哦。 如果有多个图片批量下载,看第一个步骤,你会发现链接一行一个自动粘贴到工具里面如下图所示:采集完点立即下载 还可以批量下载小红书视频哦,打开文件夹,查看视频,都是高清原视频,且无水印,还在迷茫的你,不妨试试小编这个方法吧
技术背景我们在对接外部开发者的时候,遇到这样的技术诉求,客户用于地下管道检测场景,需要把摄像头的数据拉取过来,然后叠加上实时位置、施工单位、施工人员等信息,然后对外输出新的RTSP流,并本地录制一份带动态水印叠加后的数据 技术实现废话不多说,下图先通过Android平台拉取RTSP流,然后把解码后的yuv或rgb数据回上来,以图层的形式投递到推送端,需要加水印的话,添加文字水印或图片水印(系动态水印)图层,底层做动态叠加后二次编码打包 ,通过启动轻量级RTSP服务,发布RTSP流,生成二次处理后的RTSP新的拉流url,如果需要推送至RTMP,只要调用推送RTMP的接口即可,本地录制,可以设置录制目录等信息,保存二次编码后的MP4文件到本地 onNTSmartEventCallbackV2(long handle, int id, long param1, long param2, String param3, String param4, ;return;}startLayerPostThread();btnRTMPPusher.setText("停止推送");}});总结以上是Android平台拉取RTSP数据,然后添加动态水印后,二次输出到轻量级
项目简介 文本隐水印,用来把一段信息嵌入到一段明文中,使信息隐密不可见,并且旁人无法察觉到嵌入后明文的变化。 把信息不可见地嵌入到文本中 from text_blind_watermark import TextBlindWatermark2 password = '20190808' text = '这句话中有盲水印 watermark = 'github.com/guofei9987' text_blind_wm = TextBlindWatermark2(password=password, chr_type=(3, 4) watermark) print(text_with_wm) text_blind_wm2 = TextBlindWatermark2(password=password, chr_type=(3, 4) text = "这句话中有盲水印,你能提取出来吗?"
OPTION(request) 我们在RTSP消息格式中讲过,rtsp分为request和response两大类消息,OPTION是一个request消息,其格式如下图: ? 我们来详细说下各个字段: OPTIONS:标识请求命令的类型; RTSP URI:请求的服务端的URI,以rtsp://开头的地址,一般为rtsp://ip:554(rtsp默认端口号); RTSP VER :标识RTSP 版本号,一般常见RTSP/1.0; CSeq:数据包序列号,由于OPTIONS一般而言为RTSP请求的第一条指令,一般而言,针对OPTIONS,该值为1; User-Agent:用户代理 该抓包文件中,OPTIONS请求的服务器的URI为rtsp://192.17.1.63:554;RTSP的版本号为RTSP/1.0;CSeq为数据包的序列号,由于是第一个请求包,此处为1;User-Agent 抓包文件中: 回复的消息中RTSP版本为RTSP/1.0, 状态码为200, 表示正常, 状态描述字符为OK; CSeq的值为1,与OPTIONS请求中的序列号一致; Public表示了服务端支持的方法
技术背景 我们在做Windows平台流数据转发的时候,除了常规的RTSP转RTMP推送外,还有个场景就是,好多开发者希望拉取的RTSP流,做二次视频分析,或者加动态水印等,处理后的数据,再二次编码推送到 技术实现 本文就以Windows平台拉取RTSP流,回调yuv数据到上层,处理后的数据,二次投递到RTMP服务和轻量级RTSP服务,然后叠加动态水印,并实现处理后的数据实时录像功能,废话不多说,先上图: 上图拉取了RTSP流,然后左侧窗体显示,添加动态水印后,再在右侧预览,并把数据重新投递到推送端,考虑到编码性能,我们可选硬编码。 = null) publisher_wrapper_.SetResolution(width, height); } 设置文字水印字体、字号: 流二次编辑(如增加动态水印)或视频分析(视觉算法处理)后,再录像、转推至RTMP或轻量级RTSP服务流程,经过二次处理后的流数据,配合我们的SmartPlayer,依然可以整体毫秒级的延迟体验
DEDECMS织梦上传图片加文字水印带阴影效果的方法如下:1、在电脑中打开C\windows\Font\,找到字体simhei.ttf,上传到到网站/data/mark/下。 2、进入DedeCMS管理后台,选择系统 -> 图片水印设置选择水印的文件类型:文字文字水印默认字体大小是20,我觉得改成10左右比较合适,不影响图片的效果。 水印图片文字字体大小:103、打开include目录下的image.func.php文件,并找到代码折叠PHP 代码$cfg_watermarktext['shadowx'] = '0'; $cfg_watermarktext cfg_watermarktext['shadowy'] = '1'; $cfg_watermarktext['shadowcolor'] = '255,0,255'; 这样就是白色字、紫色阴影的文字水印了
, {year:"2002",a:24,b:7,c:9,d:10}, {year:"2003",a:21,b:5,c:10,d:8}, {year:"2004",a:24,b:4,
技术背景我们在对接RTSP播放器相关的技术诉求的时候,遇到这样的需求,客户做特种设备巡检的,需要把摄像头拍到的RTSP流拉下来,然后添加动态水印后,再生成新的RTSP URL,供平台调用。 技术实现在此之前,大牛直播SDK有非常成熟的RTSP播放、轻量级RTSP服务和录像模块,要做的就是,拉取到RTSP流后,把解码后的YUV或RGB回调给上层,上层通过图层的形式,添加动态文字水印(图片水印亦可 ,添加支持了硬编码选项设置)、动态水印设置、轻量级RTSP服务、实时录像和RTMP推送。 //publisher_wrapper_.OnPostRGB32Data(0, video_frame.plane0_, video_frame.width_ * 4 拉流二次编码,整体逻辑不复杂,就是把数据回调后,二次处理,我们推送端设计的是图层的形式,所以,回调后的数据,直接作为第0层,文字水印作为第一层,如果需要图片水印,图片水印作为第三层即可。
继之前一篇科普文《如何使用RTSP推流组件EasyPusher将MP4文件推到EasyDarwin开源平台》发布后,有开发者提出疑问:假如需要显示视频直播时间,如何在推送的时候可以自定义在视频上叠加时间水印 利用FFMPEG,结合命令: ffmpeg -re -stream_loop -1 -i test.mp4 -vf drawtext=“fontfile=arial.ttc:x=w-tw-20:y=30 :fontcolor=white:fontsize=11:text=‘2020-10-10 %{localtime:%H\:%M\:%S}’” -rtsp_transport tcp -vcodec h264 -f rtsp rtsp://172.81.216.155:554/test.sdp 此命令解释,循环把test.mp4读出来以RTSP协议方式推送到172.81.216.155:554,在视频右上角添加一个白色的
通过 Android 端 RTSP 播放器模块及 YUV 数据回调机制,系统可在实时播放的同时进行 动态水印叠加、录像存档、二次编码以及轻量级 RTSP 服务再发布。 ; 二次编码生成 MP4录像文件,支持断点续录与边录边传; 将处理后的视频流通过轻量级 RTSP 服务再发布,供上位机或远程监控系统实时接入。 )将回调帧重新编码并输出为 MP4/FLV 文件,支持断点续录与边录边传支撑检测数据的现场存档、远程取证与历史追溯轻量级 RTSP / RTMP推流 / HTTP-FLV 服务模块将处理后的视频再封装、 它让系统拥有三种能力: 可看:低延迟、高稳定的实时画面; 可用:YUV 数据可供 AI/水印/再编码复用; 可传:轻量 RTSP/RTMP/FLV 服务可随时转发。 编码器支持 H.264/H.265 硬件加速,可选 FLV/MP4 封装,同时提供多路输出能力: 录像输出:边录边传,支持断点续录; 实时再发布:轻量级 RTSP/RTMP/HTTP-FLV 服务可立即开放访问
技术背景我们在做Windows平台RTMP推送、轻量级RTSP服务的时候,遇到过这样的技术需求,除了常规的png图片水印外,开发者希望能在桌面或摄像头上,叠加上实时时间和位置信息,并保存到图像里。 技术实现本文以大牛直播SDK的摄像头采集+动态文字水印为例,谈谈如何实现的,简单来说,这块分两步,第一步,如何从文字里面获取到rgb数据,第二步,如何吧rgb数据叠加到摄像头上? 废话不多说,先上图,选中采集摄像头和摄像头添加文字水印,如果需要默认打开动态文字水印,直接打开即可,如需关闭,随时可以关闭或二次打开:本文以启动个轻量级RTSP服务为例,效果如下,可以清楚的看到右侧播放端 ,显示实时更新的文字信息(更新间隔,可以自行设置):打开摄像头添加文字水印: private void btn_text_osd_Click(object sender, EventArgs e) { if (btn_text_osd.Text.Equals("打开动态文字水印")) { if (!
如实时字幕/时间戳/题目分发/公告广播等),播放端做相应解析和回显; 本地下载 很多开发者反应,由于项目庞大,github下载整个工程很慢,我们已经把相关demo文件和使用说明,全部上传到QQ群共享(加群请简要描述使用场景 4路RTSP/RTMP播放Demo(32位)本地下载(更新于2020/04/29) [Windows平台RTMP|RTSP 4路播放演示程序(64位)] Windows 4路RTSP/RTMP播放 [实时水印]支持动态水印设置,完美支持文字水印、实时时间水印和图片水印; [透明度]可以设置透明度处理(设置遮盖); 对应Demo: 测试程序:SmartPublisherDemo.exe; ]Windows平台支持文字水印、png水印、实时遮挡,Android平台支持文字水印、png水印; [RTMP推送模式]支持RTMP推送 live|record模式设置(需服务器支持); [镜像] ]Windows平台支持文字水印、png水印、实时遮挡,Android平台支持文字水印、png水印; [复杂网络处理]支持断网重连等各种网络环境自动适配; [动态码率]支持根据网络情况自动调整推流码率
推送分辨率和码率选择我们接触到好多设备,性能一般,但是屏幕是高分屏,甚至可以采集到4K的,考虑到实时编码和并发环境下,AP的承载能力,一般建议选择适合自己的分辨率码率即可,不要只追求高分辨率高码率,导致组网困难 4. 4. 为什么要考虑补帧Android的时候,一定的采集模式下,屏幕如果没有变化,不会一直有实时屏幕数据回调下来,这时候,为了保持帧率或数据采集的完整性,建议补帧。5. 文字、图片水印需要而且建议支持,比如实时时间、学校或公司logo等。 (false); final String[] watermarks = new String[]{"图片水印", "全部水印", "文字水印", "不加水印"}; ArrayAdapter
我们在此前的文章中介绍过关于EasyNVR在去年就已经实现了视频添加水印的功能。开启水印后,用户可自主上传水印图片,水印支持移动、修改图片大小等操作。感兴趣的用户可以翻阅我们往期的文章进行了解。 有用户提出需求,需要在平台分发的RTSP视频流中添加水印,并将添加水印后的RTSP流接入大华的NVR进行播放。因为用户使用的是定制版本,所以针对该用户的需求,我们在该定制版本上也增加了视频水印功能。 添加水印后的效果,如图所示:将分发的RTSP流地址放入大华的NVR里:如图所示,视频在大华NVR中显示在线,并可以正常播放。 作为性能稳定、功能丰富的视频监控平台,EasyNVR视频边缘计算网关可支持市面上大部分的RTSP/Onvif协议设备,并拥有视频转码、直播与分发、云端录像与回放等多种功能,基于这些强大的视频能力,EasyNVR
当记录足够多的交点后,这些交点形成的图像就是庞加莱截面的图像。而这个截面就是庞加莱截面。 一般只记录由向正向负穿越截面的交点,不记录由负向正穿越的点。 这样,就可以得到下面的规律:对于单周期运动,轨线为一个近似圆形,庞加莱截面上为一个点;对于2周期运动,轨线绕两圈才会闭合,穿过庞加莱截面两次,表现为2个点;对于周期N的运动,庞加莱截面上有N个点。 这种周期2的运动与庞加莱截面有2个交点。 如果取[δ,γ,ω]=[0.1,0.35,1.4]时,系统会进入混沌状态,其庞加莱截面演示图如下: 其庞加莱截面图像如下。 此时,庞加莱截面还有很多分形结构,其局部放大图如下 计算庞加莱截面的方法可以分为两步:1计算出轨线 2计算出线与面的交点。
]Windows平台支持文字水印、png水印、实时遮挡; [复杂网络处理]支持断网重连等各种网络环境自动适配; [动态码率]支持根据网络情况自动调整推流码率; [实时静音]支持推送过程中,实时静音/取消静音 水印:添加PNG水印,支持推送或录像过程中,随时添加、取消水印; 4. 回答:设置录像文件存放目录,文件前缀、单个文件大小,是否加日期、时间,随时录制即可,此外,我们的SDK还支持录像过程中,暂停录像,恢复录像。 19 RTSP推送-设置推送RTSP Url NT_PB_SetPushRtspURL:注意,RTSP推送时,确保服务器推送URL可用。 20 RTSP推送-启动推送RTSP流 NT_PB_StartPushRtsp 21 RTSP推送-启动推送RTSP流 NT_PB_StopPushRtsp:注意,此接口和NT_PB_StartPushRtsp
在移动端音视频开发中,我们经常面临一个架构抉择:是追求极致的低延迟(如无人机图传、实时指挥),还是追求丰富的功能处理(如加水印、AI分析、画中画)? (Transcoding Mode)当需要给视频加水印、跑马灯或者做画中画时,我们必须拿到 YUV 数据。 SDK 内部会负责将 Layer 0 (视频) 和 Layer X (水印) 进行硬件或软件混合。 Svr| | 本地 MP4 录像 | | (CDN/服务器) | | (局域网分发) | | (切片存储) | +----------------+ +----- 全栈式的协议栈(Full-Stack Protocol Support): 一套代码打通了 RTSP/RTMP 拉流、RTMP 推流、轻量级 RTSP 服务端以及本地 MP4 录像。