【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

内容分享3天前发布
0 0 0

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

背景需求

小班小朋友的桌子上要有水果贴图,便于幼儿分批去完成生活任务,苹果队小朋友喝水,香蕉队去上厕所、樱桃队去拿挂牌。

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

因为分园没有彩色打印机,所以我需要下载卡通黑白简笔画无色图片。

操作过程

打开通义万相,选了今天的免费分,发现有50分!

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

又改版了,不是每天10分了,一天50分,顿时感觉自己好富裕。

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

一、Q版立体彩色水果

我比较喜欢Q版风格,做了出了有立体感的香蕉水果。

关键词:填色卡风格,一串香蕉,卡通简笔画,(万相2.1专业,Q版风格)

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

关键词:白色背景,填色卡风格,一串香蕉,卡通简笔画,(万相2.1专业,Q版风格)

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

虽然以上图片很好看,我真希望能直接打印。

可惜分园没有彩色打印机。必须改成黑白简笔画线条,打印在彩色A4或彩色手工纸上。

二、Q版立体黑白线条水果

关键词:纯白色背景,卡通简笔画,一只香蕉,,简单笔画,卡通,加粗黑白轮廓线,无色,幼儿插图,线条画,黑白漫画线条艺术:,线描,粗轮廓,清晰的线条,矢量线。简单,大,(万相2.1专业,Q版风格)

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

这里面的立体感很强,我担心打印后黑白灰的颜色太多,会遮挡住彩色纸张的的颜色。

三、通用模式

关键词:纯白色背景,卡通简笔画,一只苹果,简单笔画,卡通,加粗黑白轮廓线,无色,幼儿插图,线条画,黑白漫画线条艺术:,线描,粗轮廓,清晰的线条,矢量线。简单,大,(万相2.2专业)

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

这些图片都有卡通眼睛,我不需要。把关键词里面的“卡通简笔画”删掉“卡通”

关键词:纯白色背景,简笔画,一只西瓜,简单笔画,卡通,加粗黑白轮廓线,无色,幼儿插图,线条画,黑白漫画线条艺术:,线描,粗轮廓,清晰的线条,矢量线。简单,大,

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

这个西瓜效果不错。但是同样改成苹果,就变成彩色

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

再替换成橘子,又有卡通眼睛了。但恢复了黑白线条

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

这组关键词效果不稳定。

彻底删除里面的所有卡通字样

关键词:纯白色背景,简笔画,一只无色桔子,简单笔画,加粗黑白轮廓线,无色,幼儿插图,线条画,黑白漫画线条艺术:,线描,粗轮廓,清晰的线条,矢量线。简单,大,

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

香蕉的线描效果不错

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

最后选用这个关键词,生成多次,直到满意。

纯白色背景,简笔画,一串大葡萄,简单笔画,卡通,加粗黑白轮廓线,无色,幼儿插图,线条画,黑白漫画线条艺术:,线描,粗轮廓,清晰的线条,矢量线。简单,大,

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

桔子总是不满意,但是多生成几次,总会遇到相对满意的图案。

三、下载和整理图片

因为今天了VIP限免的Q版模型,所以只能下载“有水印”图片



'''
20250802通义万相2.2下载通义照片 copy
Python下载通义万相的图片(存在问题,不能停止,只能默认下载300张,删除多余)
星火讯飞,阿夏
150%
20250830
'''
 
import os,time
import pyautogui
import pyperclip
import re
import win32api
 
 
import win32con
import sys
import ctypes
import time
 
name='20250807莲花'
# 先打开微信
 
num=1
 
def minimize_active_window():
    try:
        if sys.platform == 'win32':
 
            # 获取当前活动窗口的句柄
            
            hwnd = ctypes.windll.user32.GetForegroundWindow()
            # 最小化窗口
            ctypes.windll.user32.ShowWindow(hwnd, 6)  # 6 对应 SW_MINIMIZE
            return True
        else:
            print("此功能仅支持Windows系统")
            return False
    except Exception as e:
        print(f"最小化窗口时出错: {e}")
        return False
 
print("程序运行中...")
time.sleep(2)  # 等待2秒,让你有时间切换到VS Code窗口
 
# 尝试最小化活动窗口
if minimize_active_window():
    print("窗口已最小化")
else:
    print("无法最小化窗口")
 
 
 
 
# 读取文件名称和路径
 
path=fr'D:{name}'
 
os.makedirs(path,exist_ok=True)
 
 
 
# 打开第一图      
 
pyautogui.moveTo(646, 260)
pyautogui.click() 
time.sleep(5)
# 预设照片数量D:20250630手套103
 
for i in range(num,num+400):  
    # 下载按钮     
    pyautogui.moveTo(1651, 250)
    # pyautogui.click() 
    time.sleep(1)
 
    # 点击有,无水印要包月    
    pyautogui.moveTo(1655, 305)
    pyautogui.click() 
    time.sleep(4)
 
    # 输入图片名称,复制中文内容到剪贴板
    name=path+fr'{i:03}'
    pyperclip.copy(name)
    # 黏贴图片地址
    pyautogui.hotkey('ctrl', 'v')
    time.sleep(1)
 
    pyautogui.press('enter')
#     # 图片显示需要时间
    time.sleep(1)
 
    # 模拟按键“右箭头”
      
    pyautogui.moveTo (1223, 618)
    pyautogui.click() 
    time.sleep(2)
    #  'left'(左箭头)
    # 'up'(上箭头)
    # 'down'(下箭头)
 
import sys
import ctypes
import time
 
def minimize_active_window():
    try:
        if sys.platform == 'win32':
            # 获取当前活动窗口的句柄
            hwnd = ctypes.windll.user32.GetForegroundWindow()
            # 最小化窗口
            ctypes.windll.user32.ShowWindow(hwnd, 6)  # 6 对应 SW_MINIMIZE
            return True
        else:
            print("此功能仅支持Windows系统")
            return False
    except Exception as e:
        print(f"最小化窗口时出错: {e}")
        return False
 
print("程序运行中...")
time.sleep(2)  # 等待2秒,让你有时间切换到VS Code窗口
 
# 尝试最小化活动窗口
if minimize_active_window():
    print("窗口已最小化")
else:
    print("无法最小化窗口")

图片下载后分类整理

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

我只要黑白简笔画的

这些图片都有灰色背景,所以要清除背景颜色转为黑白色。

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)挑选5种水果各一张图(苹果橘子的边线明显比另外三种水果粗)图案有白边,需要切掉。

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)



'''
04(合并单个文件夹)将通义万相黑白简笔画填充黑白蓝色 copy
图片处理流程:
1. 将图片转为纯黑白图(黑色0,0,0和白色255,255,255)
2. 将图片转为黑蓝图(黑色0,0,0和蓝色0,255,255)
3. 识别边缘与黑线,中间填充白色(提供两种填充方法)
3. 切边(保留10磅/13像素边距)、统一大小(原比例统一,不是每张图片一样大)、透明图处理
deepseek,阿夏
20250830
'''
 
import time
from PIL import Image
import os
from datetime import datetime
from collections import deque
 
def create_folder(path):
    """创建文件夹如果不存在"""
    if not os.path.exists(path):
        os.makedirs(path)
        print(f"创建文件夹: {path}")
 
def process_image_to_bw(image_path, output_folder, threshold=128):
    """将图片转为纯黑白图(黑色0,0,0和白色255,255,255)"""
    try:
        img = Image.open(image_path)
        img = img.convert('L')  # 转为灰度图
        
        # 二值化处理
        binary_img = img.point(lambda x: 0 if x < threshold else 255, '1')
        binary_img = binary_img.convert('RGB')  # 转回RGB模式
        
        # 保存结果
        filename = os.path.basename(image_path)
        output_path = os.path.join(output_folder, filename)
        binary_img.save(output_path)
        print(f"黑白图生成: {filename} -> 已保存到 {output_path}")
        return output_path
        
    except Exception as e:
        print(f"处理图片 {image_path} 时出错: {str(e)}")
        return None
 
def process_image_to_blue_black(image_path, output_folder, threshold=128):
    """将图片转为黑蓝两色(黑色0,0,0和蓝色0,255,255)"""
    try:
        img = Image.open(image_path)
        img = img.convert('RGB')  # 确保是RGB模式
        
        pixels = img.load()
        width, height = img.size
        
        for y in range(height):
            for x in range(width):
                r, g, b = pixels[x, y]
                gray = (r + g + b) / 3
                if gray < threshold:
                    pixels[x, y] = (0, 0, 0)  # 黑色
                else:
                    # pixels[x, y] = (0, 255, 255)  # 蓝色
                    pixels[x, y] = (255, 255, 255)  # 蓝色
        
        # 保存结果
        filename = os.path.basename(image_path)
        output_path = os.path.join(output_folder, filename)
        img.save(output_path)
        print(f"黑蓝图生成: {filename} -> 已保存到 {output_path}")
        return output_path
        
    except Exception as e:
        print(f"处理图片 {image_path} 时出错: {str(e)}")
        return None
 
def vertical_fill_white(image):
    """垂直填充白色(顺时针方向)"""
    img = image.convert("RGB")
    pixels = img.load()
    width, height = img.size
    
    # 上→右→下→左 顺时针填充
    # 从上边向下填充
    for x in range(width):
        for y in range(height):
            if pixels[x, y] == (0, 0, 0):
                break
            pixels[x, y] = (255, 255, 255)
    
    # 从右边向左填充
    for y in range(height):
        for x in range(width-1, -1, -1):
            if pixels[x, y] == (0, 0, 0):
                break
            pixels[x, y] = (255, 255, 255)
    
    # 从下边向上填充
    for x in range(width):
        for y in range(height-1, -1, -1):
            if pixels[x, y] == (0, 0, 0):
                break
            pixels[x, y] = (255, 255, 255)
    
    # 从左边向右填充
    for y in range(height):
        for x in range(width):
            if pixels[x, y] == (0, 0, 0):
                break
            pixels[x, y] = (255, 255, 255)
    
    return img
 
def flood_fill_white(image):
    """洪水填充算法填充白色"""
    img = image.convert("RGB")
    pixels = img.load()
    width, height = img.size
    visited = set()
    
    # 从四个角开始填充
    corners = [(0,0), (width-1,0), (width-1,height-1), (0,height-1)]
    
    for start_x, start_y in corners:
        if pixels[start_x, start_y] == (0, 0, 0) or (start_x, start_y) in visited:
            continue
            
        queue = deque()
        queue.append((start_x, start_y))
        visited.add((start_x, start_y))
        
        while queue:
            x, y = queue.popleft()
            pixels[x, y] = (255, 255, 255)
            
            # 检查四个方向的相邻像素
            for dx, dy in [(0,1), (1,0), (0,-1), (-1,0)]:
                nx, ny = x + dx, y + dy
                if 0 <= nx < width and 0 <= ny < height:
                    if (nx, ny) not in visited and pixels[nx, ny] != (0, 0, 0):
                        visited.add((nx, ny))
                        queue.append((nx, ny))
    
    return img
 
def find_content_boundary(image):
    """找到内容边界(非白色区域)"""
    width, height = image.size
    left, right, top, bottom = width, 0, height, 0
    
    for y in range(height):
        for x in range(width):
            r, g, b = image.getpixel((x, y))
            if (r, g, b) != (255, 255, 255):  # 非白色像素
                if x < left: left = x
                if x > right: right = x
                if y < top: top = y
                if y > bottom: bottom = y
    
    return left, right, top, bottom
 
def crop_with_margin(image, boundary, margin=13):
    """带边缘裁剪图像(10磅≈13像素)"""
    left, right, top, bottom = boundary
    return image.crop((
        max(0, left - margin),
        max(0, top - margin),
        min(image.width, right + 1 + margin),
        min(image.height, bottom + 1 + margin)
    ))
 
def resize_to_max(image, max_size):
    """按最大尺寸等比例调整大小"""
    img = image.copy()
    img.thumbnail(max_size, Image.LANCZOS)
    return img
 
def make_white_transparent(image):
    """将白色转为透明"""
    img = image.convert("RGBA")
    data = img.getdata()
    
    new_data = []
    for item in data:
        # 白色或接近白色都转为透明
        if item[0] > 240 and item[1] > 240 and item[2] > 240:
            new_data.append((255, 255, 255, 0))
        else:
            new_data.append(item)
    
    img.putdata(new_data)
    return img
 
def process_complete_flow():
    # 记录开始时间
    start_time = time.time()
    start_datetime = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    
    # 设置路径
    base_path = r'D:20250830 桌面水果标志简笔画挑选'
 
 
    
    folders = {
        'input': os.path.join(base_path, '00原图'),
        'bw': os.path.join(base_path, '01黑白图'),
        'blue_black': os.path.join(base_path, '02黑蓝图'),
        'filled': os.path.join(base_path, '03黑白蓝图'),
        'cropped': os.path.join(base_path, '04切边图'),
        'resized': os.path.join(base_path, '05统一图'),
        'transparent': os.path.join(base_path, '06透明图')
    }
    
    # 创建所有输出文件夹
    for folder in folders.values():
        create_folder(folder)
    
    # 处理参数
    threshold = 128      # 二值化阈值
    margin = 0         # 10磅≈13像素的边距
    max_size = (622, 877)  # 统一尺寸
    fill_method = 'flood' # 'vertical' 或 'flood'
    
    # 支持的图片格式
    valid_exts = ('.jpg', '.jpeg', '.png', '.bmp', '.gif')
    
    # 处理每张图片
    for filename in os.listdir(folders['input']):
        if not filename.lower().endswith(valid_exts):
            continue
            
        try:
            print(f"
处理文件: {filename}")
            
            # 1. 原始图片路径
            input_path = os.path.join(folders['input'], filename)
            
            # 2. 生成纯黑白图
            bw_path = process_image_to_bw(input_path, folders['bw'], threshold)
            if not bw_path:
                continue
                
            # 3. 生成黑蓝图
            blue_black_path = process_image_to_blue_black(
                input_path, folders['blue_black'], threshold)
            if not blue_black_path:
                continue
            
            # 4. 填充白色背景
            image = Image.open(blue_black_path)
            if fill_method == 'flood':
                filled = flood_fill_white(image)
                print("使用洪水填充算法")
            else:
                filled = vertical_fill_white(image)
                print("使用垂直填充算法")
            
            # 保存黑白蓝图
            filled_path = os.path.join(folders['filled'], filename)
            filled.save(filled_path)
            print(f"黑白蓝图保存: {filled_path}")
            
            # 5. 切边处理(保留10磅边距)
            boundary = find_content_boundary(filled)
            cropped = crop_with_margin(filled, boundary, margin)
            
            cropped_path = os.path.join(folders['cropped'], filename)
            cropped.save(cropped_path)
            print(f"切边图保存: {cropped_path}")
            
            # 6. 统一大小
            resized = resize_to_max(cropped, max_size)
            
            resized_path = os.path.join(folders['resized'], filename)
            resized.save(resized_path)
            print(f"统一大小图保存: {resized_path}")
            
            # 7. 制作透明图
            transparent = make_white_transparent(resized)
            
            transparent_path = os.path.join(folders['transparent'], filename)
            transparent.save(transparent_path, quality=100)
            print(f"透明图保存: {transparent_path}")
            
        except Exception as e:
            print(f"处理 {filename} 时出错: {str(e)}")
    
    # 记录结束时间并打印统计信息
    end_time = time.time()
    end_datetime = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    total_seconds = end_time - start_time
    minutes = int(total_seconds // 60)
    seconds = int(total_seconds % 60)
    
    print("
" + "="*50)
    print(f"程序开始时间: {start_datetime}")
    print(f"程序结束时间: {end_datetime}")
    print(f"总用时: {minutes}分{seconds}秒")
    print(f"共计: {total_seconds:.2f}秒")
    print("="*50)
    print("所有图片处理完成!")
 
if __name__ == "__main__":
    process_complete_flow()

本次要的是黑白图,所以把黑白蓝的代码微调,蓝色部分都改成白色

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

从原图里变出很多文件夹(图片处理过程)

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

统一图里面图片大小也不统一。

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

最后把透明图的水果复制到A4(因为只有5张,我就新建一个word,然后手动黏贴了)

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

四、继续生成Q版水果

虽然没有用上Q版水果图片(彩色立体渐变),但我还是很喜欢鲜艳的色彩和立体感。所以继续用关键词生成更多的水果

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

关键词:白色背景,填色卡风格,一只生梨,卡通简笔画,(Q版线描,万相2.1专业)

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

但是做“木瓜”感觉它像西瓜

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

反复测试后,变出无色的、动物的造型。

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

尝试加上水果字样,

关键词:“白色背景,填色卡风格,一只青提(水果),卡通简笔画”“

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

有些水果还是默认不了(山竹、龙岩、莲雾、蛇皮果)

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

菠萝蜜和菠萝一样

【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)

从里面选好看的、逼真的、常见的水果。作为学具制作的素材(演示文稿PPTX、水果数独图片等)

© 版权声明

相关文章

暂无评论

none
暂无评论...