B超单生成器在线制作, 怀孕b超单图片在线制作,JS+CSS+html演示

简介: 这个生成器将使用Python和一些图像处理库来创建逼真的B超单图片。主要功能包括:

下载地址:https://www.pan38.com/share.php?code=VRjxk 提取码:8888

开发一个B超单装逼娱乐生成器,这个工具可以生成看起来非常专业的假B超单图片,用于娱乐目的。请注意,这个工具仅供娱乐,切勿用于任何非法或不道德用途。

项目概述
这个生成器将使用Python和一些图像处理库来创建逼真的B超单图片。主要功能包括:

生成随机但合理的B超数据
创建逼真的B超图像效果
添加医院信息和医生签名
输出最终的B超单图片
完整的项目代码,包含多个模块

import random
import datetime
from PIL import Image, ImageDraw, ImageFont
import numpy as np
import os
import textwrap
from faker import Faker

class BGenerator:
def init(self):
self.fake = Faker('zh_CN')
self.font_path = "simsun.ttc"
if not os.path.exists(self.font_path):
self.font_path = None

    # 初始化模板图片
    self.template = Image.new('RGB', (800, 1000), color='white')
    self.draw = ImageDraw.Draw(self.template)

    # 医院信息
    self.hospitals = [
        "北京协和医院", 
        "上海瑞金医院", 
        "广州中山医院",
        "成都华西医院",
        "武汉同济医院"
    ]

    # 医生姓名
    self.doctors = [
        "张伟", "王芳", "李娜", "刘强", "陈静",
        "杨光", "赵敏", "周涛", "吴晓", "郑华"
    ]

    # 检查项目
    self.exam_items = [
        "胎儿超声检查", "腹部超声检查", "心脏超声检查",
        "甲状腺超声检查", "乳腺超声检查", "妇科超声检查"
    ]

    # 诊断结果
    self.diagnoses = [
        "宫内早孕,活胎", "胎儿发育正常", "未见明显异常",
        "建议复查", "轻度脂肪肝", "胆囊息肉"
    ]

def generate_patient_info(self):
    """生成患者信息"""
    gender = random.choice(["男", "女"])
    age = random.randint(18, 60)
    patient_id = self.fake.ssn()
    exam_date = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")

    return {
        "name": self.fake.name(),
        "gender": gender,
        "age": age,
        "patient_id": patient_id,
        "exam_date": exam_date
    }

def generate_ultrasound_data(self):
    """生成B超数据"""
    gestational_weeks = random.randint(5, 40)
    fetal_heart_rate = random.randint(120, 160)
    biparietal_diameter = round(random.uniform(2.0, 9.5), 2)
    femur_length = round(random.uniform(1.5, 7.5), 2)
    amniotic_fluid_index = round(random.uniform(5.0, 20.0), 1)

    return {
        "gestational_weeks": gestational_weeks,
        "fetal_heart_rate": fetal_heart_rate,
        "biparietal_diameter": biparietal_diameter,
        "femur_length": femur_length,
        "amniotic_fluid_index": amniotic_fluid_index
    }

def generate_ultrasound_image(self):
    """生成B超图像效果"""
    # 创建一个灰色背景
    width, height = 400, 300
    image = np.zeros((height, width), dtype=np.uint8)
    image.fill(128)

    # 添加一些随机噪声
    noise = np.random.normal(0, 25, (height, width))
    image = np.clip(image + noise, 0, 255).astype(np.uint8)

    # 添加一些"器官"形状
    for _ in range(random.randint(3, 7)):
        center_x = random.randint(50, width-50)
        center_y = random.randint(50, height-50)
        radius = random.randint(20, 80)

        for y in range(height):
            for x in range(width):
                dist = np.sqrt((x-center_x)**2 + (y-center_y)**2)
                if dist < radius:
                    val = int(255 * (1 - dist/radius))
                    image[y, x] = np.clip(image[y, x] + val, 0, 255)

    # 转换为PIL图像
    return Image.fromarray(image)

def draw_text(self, text, position, font_size=12, bold=False):
    """在图片上绘制文本"""
    if self.font_path:
        font = ImageFont.truetype(self.font_path, font_size)
    else:
        font = ImageFont.load_default()

    if bold:
        # 简单模拟加粗效果
        self.draw.text((position[0]-1, position[1]), text, font=font, fill="black")
        self.draw.text((position[0]+1, position[1]), text, font=font, fill="black")
        self.draw.text((position[0], position[1]-1), text, font=font, fill="black")
        self.draw.text((position[0], position[1]+1), text, font=font, fill="black")

    self.draw.text(position, text, font=font, fill="black")

def generate_report(self):
    """生成完整的B超报告"""
    # 生成随机数据
    patient = self.generate_patient_info()
    ultrasound_data = self.generate_ultrasound_data()
    hospital = random.choice(self.hospitals)
    doctor = random.choice(self.doctors)
    exam_item = random.choice(self.exam_items)
    diagnosis = random.choice(self.diagnoses)

    # 绘制医院标题
    self.draw_text(hospital, (50, 30), font_size=24, bold=True)
    self.draw_text("超声检查报告单", (300, 35), font_size=20, bold=True)

    # 绘制患者信息
    self.draw_text(f"姓名: {patient['name']}", (50, 80))
    self.draw_text(f"性别: {patient['gender']}", (250, 80))
    self.draw_text(f"年龄: {patient['age']}", (400, 80))
    self.draw_text(f"检查日期: {patient['exam_date']}", (50, 110))
    self.draw_text(f"病历号: {patient['patient_id']}", (400, 110))
    self.draw_text(f"检查项目: {exam_item}", (50, 140))

    # 绘制分隔线
    self.draw.line([(50, 170), (750, 170)], fill="black", width=2)

    # 绘制超声数据
    y_pos = 190
    self.draw_text("超声所见:", (50, y_pos), bold=True)
    y_pos += 30

    if "胎儿" in exam_item:
        # 如果是胎儿检查,显示胎儿数据
        text = f"宫内见一胎儿,头位,胎心搏动规律,胎心率{ultrasound_data['fetal_heart_rate']}次/分。"
        text += f"双顶径{ultrasound_data['biparietal_diameter']}cm,股骨长{ultrasound_data['femur_length']}cm,"
        text += f"羊水指数{ultrasound_data['amniotic_fluid_index']}cm。"
        text += "胎盘位于子宫前壁,成熟度0级。脐动脉血流频谱正常。"

        # 自动换行
        lines = textwrap.wrap(text, width=60)
        for line in lines:
            self.draw_text(line, (70, y_pos))
            y_pos += 25
    else:
        # 其他检查的通用描述
        text = "检查部位图像清晰,结构正常,未见明显异常回声。"
        text += "血流信号正常,未见明显占位性病变。"

        lines = textwrap.wrap(text, width=60)
        for line in lines:
            self.draw_text(line, (70, y_pos))
            y_pos += 25

    y_pos += 10

    # 绘制超声图像
    ultrasound_img = self.generate_ultrasound_image()
    self.template.paste(ultrasound_img, (200, y_pos))
    y_pos += ultrasound_img.height + 20

    # 绘制诊断意见
    self.draw_text("超声提示:", (50, y_pos), bold=True)
    y_pos += 30
    self.draw_text(diagnosis, (70, y_pos))
    y_pos += 50

    # 绘制医生签名
    self.draw_text(f"检查医生: {doctor}", (500, y_pos))
    self.draw_text("报告日期: " + datetime.datetime.now().strftime("%Y-%m-%d"), (500, y_pos + 30))

    # 绘制医院印章(模拟)
    self.draw.ellipse([(600, y_pos-20), (700, y_pos+80)], outline="red", width=3)
    self.draw_text(hospital.split("医院")[0], (620, y_pos+10), font_size=12, fill="red")
    self.draw_text("超声科", (640, y_pos+35), font_size=12, fill="red")

    return self.template

def save_report(self, filename="ultrasound_report.png"):
    """保存生成的报告"""
    report = self.generate_report()
    report.save(filename)
    print(f"报告已生成并保存为 {filename}")

if name == "main":
generator = BGenerator()
generator.save_report()
代码语言:txt
AI代码解释
Pillow==9.0.0
numpy==1.22.0
faker==13.3.0
这个B超单生成器包含以下主要功能:

‌患者信息生成‌:使用Faker库生成随机的患者姓名、性别、年龄和病历号。
‌B超数据生成‌:生成合理的B超检查数据,包括孕周、胎心率、双顶径等参数。
‌B超图像生成‌:使用NumPy创建模拟的B超图像效果,包含随机噪声和器官形状。
‌报告排版‌:将生成的所有信息排版到一张图片上,包括医院信息、患者信息、检查结果和医生签名。
‌输出功能‌:最终将生成的B超单保存为PNG图片文件。

相关文章
|
前端开发 UED 容器
CSS基础-背景属性:颜色、图片、重复
【6月更文挑战第9天】本文介绍了CSS背景属性,包括背景颜色、图片、重复的使用和常见问题。通过实例展示了如何设置背景颜色(如使用rgba()注意透明度影响)、背景图片(使用background-size控制缩放)、背景重复(避免默认平铺导致混乱)以及综合使用背景属性创建复杂效果。理解并熟练运用这些属性能提升网页设计的视觉层次和用户体验。建议通过实践不断探索和提升CSS技能。
352 4
|
7月前
|
前端开发
WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件),保存资源(图片、脚本、CSS)
WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件),保存资源(图片、脚本、CSS)
360 63
|
前端开发
在Webpack配置文件中,如何配置loader以处理其他类型的文件,如CSS或图片
在Webpack配置文件中,通过设置`module.rules`来配置loader处理不同类型的文件。例如,使用`css-loader`和`style-loader`处理CSS文件,使用`file-loader`或`url-loader`处理图片等资源文件。配置示例:在`rules`数组中添加对应规则,指定`test`匹配文件类型,`use`指定使用的loader。
|
8月前
|
前端开发 JavaScript 容器
制作b超单生成器, 假怀孕b超单图片制作, p图医院证明【css+html+js装逼恶搞神器】
本资源提供一个适合用于熟人之间恶搞的工具,效果逼真,仅供学习参考与娱乐。包含前端技术学习要点:语义化布局、响应式设计、Flexbox、图片自适应
|
前端开发 UED
Webpack 中处理 CSS 和图片资源的多 Loader 配置
【10月更文挑战第12天】 处理 CSS 和图片资源是 Webpack 配置中的重要部分。通过合理选择和配置多个 Loader,可以实现对这些资源的精细处理和优化,提升项目的性能和用户体验。在实际应用中,需要不断探索和实践,根据项目的具体情况进行灵活调整和优化,以达到最佳的处理效果。通过对 Webpack 中多 Loader 处理 CSS 和图片资源的深入了解和掌握,你将能够更好地应对各种复杂的资源处理需求,为项目的成功构建和运行提供坚实的基础。
431 58
|
JavaScript 容器
jquery和CSS3图片排序过滤搜索插件
Filterizr是一款jquery和CSS3图片排序过滤插件。它可以对一组图片进行排序,按条件过滤和按关键字搜索。并在显示结果时使用指定的CSS3动画过渡效果。
206 2
|
编解码 前端开发 UED
探讨了CSS媒体查询在移动端开发中的应用,介绍了媒体查询的基本概念、常见条件及其在响应式布局、导航菜单、图片优化和字体调整等方面的具体应用
本文深入探讨了CSS媒体查询在移动端开发中的应用,介绍了媒体查询的基本概念、常见条件及其在响应式布局、导航菜单、图片优化和字体调整等方面的具体应用。通过实际案例分析和注意事项的讨论,旨在帮助开发者更好地理解和运用媒体查询,提升移动端用户体验。
313 4
CSS3实现的九宫格图片鼠标悬停去除遮罩层源码
CSS3实现的九宫格图片鼠标悬停去除遮罩层源码
78 0
CSS3实现的九宫格图片鼠标悬停去除遮罩层源码
|
前端开发
如何使用 CSS object-fit 进行图片的缩放和裁剪
如何使用 CSS object-fit 进行图片的缩放和裁剪
1035 0
如何使用 CSS object-fit 进行图片的缩放和裁剪
|
前端开发
视觉冲击:CSS实现相册图片的放大效果,让网站首页更震撼!
视觉冲击:CSS实现相册图片的放大效果,让网站首页更震撼!