首页 > 其他分享 >博客园作为图床,上传图片自动添加图片水印

博客园作为图床,上传图片自动添加图片水印

时间:2023-12-08 22:33:38浏览次数:22  
标签:watermark 博客园 水印 图床 im path os image 图片

专属于博客园的教程。

markdown上传图片,添加图片水印,再上传到博客园图床。

前言

图床有防盗链什么的,处理起来实在是麻烦。

既然博客园支持图床,我现在只在博客园写,那就捣鼓了一下。

今天是通义千问工程师。菜鸡啥也不会。

参考教程

首先应参考教程配置,保证博客园图床正确,再对python文件进行修改,我也在下面沾了我的配置。

https://www.cnblogs.com/Journing/p/16671325.html

博客园配置

在i.cnblogs.com/settings里,开启这个。

image-20231208220149240

Typora配置

在typora里面配置python文件为上传服务。python代码在后面。

image-20231208221657348

py代码

准备一张shuiyin.png图片,将shuiyin.png图片和python文件放在一起。

我的typora和md文件都在C盘,没有尝试过读取图片的问题。

创建一个cnblogs.py。代码如下:(对上面大佬的代码改改改)

CONFIGS = {
     "url": "",
     "username": "",
     "password": "",
     "blogID": "",
 }

import os
import sys
import xmlrpc.client as client
import mimetypes

from PIL import Image

# 添加水印
def add_watermark(image_path):  
    im = Image.open(image_path)
    
    # 加载水印图像
    watermark_file = "shuiyin.png"  # 假设这个文件在你的脚本所在目录下
    watermark_im = Image.open(os.path.join(os.path.dirname(__file__), watermark_file))  # 使用相对路径
    
    # 获取原始图像和水印图像的尺寸
    width, height = im.size
    watermark_width, watermark_height = watermark_im.size
    
    # 将水印图像的尺寸设置为原始图像的50%
    watermark_width *= 0.5
    watermark_height *= 0.5
    watermark_im = watermark_im.resize((int(watermark_width), int(watermark_height)), resample=Image.BILINEAR) 
    
    # 计算水印的位置(这里假设我们将其放在右下角)
    x = width - int(watermark_width) - 10
    y = height - int(watermark_height) - 10
    
    # 将水印图像粘贴到原始图像上
    im.paste(watermark_im, (x, y), mask=watermark_im.convert("RGBA"))
    
    # 然后保存处理后的图像
    base_dir = os.path.dirname(os.path.abspath(image_path))
    new_image_path = os.path.join(base_dir, "watermarked_" + os.path.basename(image_path))
    im.save(new_image_path)
    return new_image_path


def get_image(image_path):
     image_mimetype = mimetypes.guess_type(image_path, True)[0]
     image_name = os.path.basename(image_path)
     image_bits = client.Binary(open(image_path, 'rb').read())
     image = {
         "name": image_name,
         "type": image_mimetype,
         "bits": image_bits,
     }
     return image


def upload_image(image_path):
     image = get_image(image_path)
     server = client.ServerProxy(CONFIGS.get("url"))
     url = server.metaWeblog.newMediaObject(CONFIGS.get("blogID"), CONFIGS.get("username"),
                                            CONFIGS.get("password"), image).get("url")
     return url


def main(argv):
     args = iter(argv)
     next(args)
     for image_path in args:
         img1 = add_watermark(image_path)
         print(upload_image(img1))


if __name__ == "__main__":
     main(sys.argv)

标签:watermark,博客园,水印,图床,im,path,os,image,图片
From: https://www.cnblogs.com/zlzgzlz/p/17889184.html

相关文章

  • Android阅读器之文本、图片和表格测量
    文章摘要本文将介绍如何在Android开发中实现文本、图片和表格的测量。我们将使用AndroidStudio和Java语言,并利用AndroidSDK中的相关类库。正文文本测量在Android中,可以使用Paint类和getTextBounds()方法来测量文本。首先,需要创建一个Paint对象,然后设置字体、颜色等属性。接下来,调......
  • Android阅读器之文本、图片和表格测量
    文章摘要本文将介绍如何在Android开发中实现文本、图片和表格的测量。我们将使用AndroidStudio和Java语言,并利用AndroidSDK中的相关类库。正文文本测量在Android中,可以使用Paint类和getTextBounds()方法来测量文本。首先,需要创建一个Paint对象,然后设置字体、颜色等......
  • 博客上传图片,自动添加水印的办法
     效果使用PicList,在typora里将图片上传图床时,自动添加水印。右下角有水印图片。PicList(http替换成了hxxp,保险起见。)大佬网站hxxps://piclist.cnGithub地址hxxps://github.com/Kuingsmile/PicListredme.mdhxxps://github.com/Kuingsmile/PicList/blob/dev/README_cn.......
  • Qt显示OpenCV的单通道图片
    一、概述Qt中显示OpenCV的图片。OpenCV中的Mat默认是3通道图片。但是其灰度图、二值图片会是8位单通道的。示例代码中记录了如何显示二、代码示例#include"ImageUtils.h"MatImageUtils::qImageToMat(QImageqImage){//QImage转Mat三通道图片QImageimage=......
  • Windows系统webp图片预览插件
    Windows系统webp图片预览插件、下载插件并安装软件名称:WebPCodecforWindows(WindowsWebP编解码组件)最新版本:0.19.9(29Jan2020)评可证:Freeware系统要求:WindowsXP/Vista/7/8/10下载地址:WebpCodecSetup.exe(4.9MB)、WebPPhotoshopplug-in(516KB) ......
  • 前端图片最优化压缩方案
    functioncompressImg(file,quality){varqualitys=0.52if(parseInt((file.size/1024).toFixed(2))<1024){qualitys=0.85}if(5*1024<parseInt......
  • pageoffice 6 实现数据区域填充(插入文本、图片、word、excel等)
    在实际的Word文档开发中,经常需要自动填充数据到Word模板中,以生成动态的Word文档。例如:1、我们可以根据数据库表中已保存的个人信息,设计好一个简历模板docx文件,然后通过代码将这些个人信息填充到Word模板中,从而自动生成一份简历。2、如果需要将图片插入到Word模板指定位置,比如......
  • Python:对图片批量进行重命名
    一、对图片批量进行重命名os.listdir(path)#获取文件目录列表1、定义一个修改名称方式2、主函数定义#1、定义修改方法defrename(path):file_list=os.listdir(path)#获取文件目录列表num=len(file_list)#获取个数i=0;......
  • vue-quill富文本编辑器实现图片缩放
    安装环境官网:https://vueup.github.io/vue-quill/guide/modules.htmlnpm安装:npminstall@vueup/vue-quill@latest--savepnpm安装:pnpmadd@vueup/vue-quill@latest安装模块quill-blot-formatternpm:npminstall--savequill-blot-formatterpnpm:npmaddquill-blot-form......
  • python将图片写入excel
    importjsonimportpandasaspdfromopenpyxlimportWorkbookfromopenpyxl.drawing.imageimportImageexcel_col_map={1:"A",2:"B",3:"C",4:"D",5:"E",6:"F&quo......