当前位置: 首页 > news >正文

Gemini 2.5 Flash Image Preview API:获取API Key、调用教程与深度技术解析

摘要: 告别“炼丹”式的反复试错,拥抱流畅的对话式编辑。谷歌最新的原生多模态模型 Gemini 2.5 Flash Image Preview(代号“Nano Banana”)已经到来。本文将从核心架构、关键能力、竞品对比、API实战到获取API Key,为你提供一份全面、深入且极具实践价值的开发者指南,助你第一时间掌握这项足以改变创意工作流的强大技术。

在这里插入图片描述

1. 导论:一场名为“原生多模态”的架构革新

嘿,各位开发者朋友们!

最近,你可能在 LMArena 这类性能天梯榜上,注意到一个神秘的代号——“Nano Banana”。它悄无声息地攀升至图像编辑榜首,引发了圈内无数的好奇与猜测。如今,谜底揭晓,它就是谷歌于2025年8月27日北京时间凌晨正式发布的最新、最快、最高效的原生多模态模型:Gemini 2.5 Flash Image Preview

请注意,这绝非又一个“玩具级”的文生图工具。谷歌的雄心壮志,是将其打造为一个以工作流为中心的“创意协作者”。它的核心价值,并非追求天马行空的艺术风格,而是通过强大的API,无缝嵌入到你我的实际开发流程与企业级应用中,实现真正的自动化与生产力跃迁。

1.1 架构之变:从“胶水模型”到“原生一体”

它为何如此高效和强大?答案藏在底层架构的根本性变革中。

过去的许多模型,处理图像和文本的方式更像是“先斩后奏”或者“双人搭档”,要么是将图像功能“粘合”到一个文本模型上,要么是按顺序处理两种数据。而 Gemini 2.5 Flash Image Preview 则是 “原生多模态” 的。这意味着,它从训练之初,就在一个统一、同步的步骤中学习理解和处理图像与文本。

这个架构的基石,是大家熟悉的 Gemini 2.5 家族的稀疏专家混合(Mixture-of-Experts, MoE) 架构。你可以把它想象成一个顶级的专家顾问团。当一个任务(token)进来时,系统不会让所有专家都忙活一遍,而是智能地只把它分配给最擅长处理这个问题的几位“专家”。这种机制巧妙地解耦了模型的总知识量和单次计算的成本,实现了惊人的效率。这一切,都在谷歌为大规模计算而生的 TPU (张量处理单元) 上进行了千锤百炼。

这种“原生一体”的设计,带来了一个颠覆性的改变:真正的图像编辑。当模型能同时“看到”图像的上下文和“听懂”你新的文本指令时,它就不再是粗暴地根据新提示“重新画一张”,而是在原有图像上进行精细的“修改”。这彻底改变了我们与AI的互动模式——我们不再是那个苦苦追寻“完美初始提示”的炼丹师,而是可以构建一个引导用户通过迭代式优化完成复杂创意任务的应用程序。这,才是生成式AI走向成熟、走向实用的标志。

1.2 核心三板斧:超越静态生成

正是这种独特的架构,赋予了它三大超越传统图像生成模型的核心差异化特性:

  • 行云流水的对话式编辑: 想象一下,你可以像和设计师沟通一样,通过自然语言对话,对一张图片进行“指指点点”:“这里调亮一点”、“给这个人加顶帽子”、“背景换成赛博朋克风格”……无需每次都重头再来,体验极其流畅。
  • 角色与风格的惊人一致性: 这一直是行业的痛点!要让一个角色在系列图片中保持同样的相貌、穿着不同的衣服、摆出不同的姿势,难于登天。Gemini 2.5 Flash Image Preview 的核心设计目标之一,就是攻克这个难题。对于品牌故事、系列漫画、营销活动来说,这简直是福音。
  • 天马行空的多图像融合: 它能理解并智能地将最多三张输入图像的元素,无缝融合到一个全新的、毫无违和感的场景中。想让模特穿上另一张图里的裙子?想把你的产品P到任何场景里?交给它就好。

1.3 在 Gemini 2.5 家族中的精准定位

为了让大家不“选错型”,我们有必要搞清楚它在强大的 Gemini 2.5 家族中的位置。简单来说,Gemini 2.5 系列是一群“会思考的模型”,而我们今天的主角,是个“特长生”。

在这里插入图片描述

  • Gemini 2.5 Pro: 全能旗舰。追求最高质量、深度推理和复杂编码任务的不二之选。
  • Gemini 2.5 Flash: 性价比之王。性能与成本的完美平衡,是处理日常复杂任务的主力军。
  • Gemini 2.5 Flash-Lite: 速度先锋。为高并发、低延迟的场景而生,成本极低。
  • Gemini 2.5 Flash Image Preview: 图像专家。它是 Flash 架构的特化版本,所有资源都倾斜给了图像生成和编辑。划重点:它不支持“思考”功能,也正因如此,才能在图像任务上达到极致的速度和效率。

2. 核心能力与战略应用:让创意工作流自动化

Gemini 2.5 Flash Image Preview 的每一项功能,都像一把精准的手术刀,切向专业创意工作流中最耗时、最繁琐的环节。它的使命,是成为强大的生产力工具。

2.1 文本生成与渲染:不止于画,还能写

模型能生成高质量的1024px照片级图像,这已是基本操作。更酷的是,它能在图像中渲染出清晰、位置准确的文本,解决了许多模型的“文字鬼画符”难题。此外,它还具备“区域感知生成”能力,比如你输入“一份早餐”,它会根据你(或你指定的)地理文化背景,生成截然不同的视觉结果。

2.2 迭代式编辑与修复:指哪打哪的“神笔马良”

你可以上传一张现有图片,用自然语言指令来增、删、改其中元素。其“图像修复”(Inpainting) 功能堪称一绝,能精准修改特定区域,同时完美保留周围环境的风格、光照和构图。这背后,正是其统一多模态架构的功劳。

开发者灵感: 试试构建一个应用,让用户上传自家猫咪的照片,然后输入:“请在这只猫的头上加一顶小小的针织巫师帽”。

2.3 保持一致性:品牌与叙事的福音

这是模型的核心卖点。它能让同一个角色或物体,在不同场景、姿势、光照下,依然保持其核心身份特征。这项能力,为品牌营销、系列故事创作等领域扫清了长久以来的技术障碍。

2.4 多图像融合:高级合成,信手拈来

模型能理解并融合多达三张输入图片,创造出全新的、照片级的合成图像。这在产品模型图、创意拼贴和广告设计中实用价值极高。

开发者灵感: 提供一张裙子和一张模特的图片,然后下达指令:“让第二张图里的女士穿上第一张图里的蓝色碎花连衣裙”。一个虚拟试衣间应用的原型就诞生了。

2.5 原生世界知识:它看得懂,也想得通

模型继承了 Gemini 家族的广博知识,能执行需要语义理解的视觉任务。比如,解读手绘的数学公式,根据现实逻辑遵循复杂的编辑指令,或是回答关于图像内容的深度问题。

2.6 将功能转化为生产力:你的下一个应用场景

  • UI/UX 原型设计: 根据文本描述生成线框图和设计元素,再通过对话快速迭代优化。
  • 自动化营销与电商: 批量生成风格一致的产品图,将产品“P”入各种生活场景,甚至为不同国家市场生成本土化的广告素材。
  • 动态内容与叙事创作: 轻松制作具有连续性角色的系列漫画分镜或故事板。

3. 性能对决:硬核基准与竞品分析

空口无凭,我们来看看 Gemini 2.5 Flash Image Preview 在赛场上的真实表现。

3.1 定量指标:数据不会说谎

  • LMArena 登顶: 发布前,其代号“nano-banana”就在 LMArena 图像编辑排行榜上位列第一,这表明在真实的“人类偏好”盲测中,它已获得压倒性优势。
  • 内部基准评估: 官方数据显示,在“总体偏好”、“视觉质量”和“指令遵循度”等多个维度上,它与 GPT Image 1、FLUX.1 等强劲对手相比,均表现出色。
  • 细分领域性能: 在“角色塑造”、“情景重构”和“物体/环境”等专项测试中,同样展现了其卓越能力。

3.2 与行业巨头的定性比较:它到底强在哪?

是时候将它与 DALL-E 3 和 Midjourney 这两位市场领导者掰掰手腕了。

  • 图像质量与真实感: 行业公认的顶尖水准 (SOTA)。尤其在照片真实感上,许多评测认为它已超越对手。
  • 提示理解与推理: 核心优势。得益于 Gemini 的强大基因,它能更精准地解读复杂、细致的提示,而 DALL-E 3 有时更倾向于字面上的刻板解释。
  • 编辑与迭代: 决定性优势。其原生的对话式工作流,在体验和效率上,架构性地优于 DALL-E 3 的 in-painting 和 Midjourney 的“Vary Region”等离散式编辑工具。
  • 艺术风格化: 公认的短板。在创造独特、具有电影感的艺术美学方面,Midjourney 依然是无可争议的王者。用户反馈指出,Gemini 2.5 Flash Image Preview 在风格迁移上表现平平,甚至不如谷歌自家的早期模型。
  • 文本渲染: 表现好坏参半。虽然官方宣称具备此能力,但用户实测效果不如 GPT-Image-1,且难以处理漫画对话框这类复杂布局。
  • 速度: 快! 响应速度明显快于 DALL-E 3 等竞争对手。

3.3 一图看懂:三大模型选型矩阵

为了帮你快速决策,我们整理了这张对比表:

特性维度Gemini 2.5 Flash ImageOpenAI DALL-E 3 / GPT ImageMidjourney
核心优势工作流自动化与对话式编辑广泛可及性与提示精确性艺术风格化与社区生态
照片真实感行业顶尖 (SOTA)优秀非常好,但常带风格化
编辑能力原生、对话式、多轮有限的 In-painting (通过 ChatGPT)离散工具 (Vary, Pan, Zoom)
角色一致性高(核心功能)低至中(正在改进但非原生)低(正在改进但非原生)
艺术风格较弱(风格迁移能力不足)良好极佳(标志性美学)
API 访问提供 (Google AI Studio & Vertex AI)提供 (OpenAI API)无官方 API(仅第三方)
生态系统Google Cloud / Vertex AIChatGPT / Microsoft AzureDiscord 社区
速度非常快中等较慢

结论:

  • 如果你需要自动化、高保真、可迭代的专业工作流,选 Gemini 2.5 Flash Image
  • 如果你追求顶级的艺术美学和社区灵感Midjourney 仍是首选。
  • 如果你需要一个集成在现有生态(如ChatGPT)中、易于上手的工具,DALL-E 3 是个不错的选择。

4. Gemini 2.5 Flash Image Preview API 密钥获取:两条路径,两种人生

谷歌为我们提供了两条获取API密钥的路径,这背后对应着从“快速验证想法”到“安全部署上线”的开发全周期。请务必分清这两条路,严禁将原型密钥用于生产环境!

4.1 路径A:Google AI Studio - 为快速原型而生

这条路专为想快速上手、测试创意的开发者设计。

  1. 访问 Google AI Studio 官网 (aistudio.google.com)。
  2. 点击“Get API key”,然后选择“Create API key”。
  3. 根据提示创建一个新的 Google Cloud 项目,密钥将自动生成。

重要警告: 此密钥仅用于开发和测试!它与你的个人Google账户关联,权限较高,一旦泄露,后果不堪设 panneaux。

4.2 路径B:uiuiAPI - 为国内开发者生产环境而设

这条路适用于构建需要高安全性、可扩展性和企业级治理的生产级应用。

  1. 前提条件:uiuiAPI.com注册 获取 Gemini 2.5 Flash Image Preview API
  2. 生成 API 密钥: 在“uiuiAPI控制台令牌” > “令牌”中创建生成API 密钥,即可开发调用。

在这里插入图片描述

4.3 安全黄金准则:如何守护你的 API 密钥

安全管理密钥是保护你应用和账户的生命线。请将以下准则刻在心里:

  • 准则一:严禁将密钥提交到 Git 等版本控制系统! 这是官方文档反复强调的红线。
  • 准-则二:严禁在客户端代码(Web或移动端)中暴露密钥! 客户端代码中的密钥极易被窃取和滥用。

最佳实践:

  • 使用环境变量: 将密钥存储在名为 GEMINI_API_KEY 的环境变量中,这是官方SDK推荐并会自动检测的做法。
    • Linux/macOS: export GEMINI_API_KEY="YOUR_API_KEY"
    • Windows (PowerShell): $env:GEMINI_API_KEY="YOUR_API_KEY"
  • 服务器端调用: 最安全的方式,是在你的后端服务器上调用Gemini API,这样密钥永远不会离开你控制的安全环境。

5. 开发者手册:代码上手,即刻开干

本节提供即插即用的代码示例,假设你已通过环境变量正确配置了API密钥。

5.1 环境设置

  • Python: pip install -U google-genai
  • Node.js: npm install @google/generative-ai

5.2 Python 实现 (google-genai SDK)

5.2.1 示例1:基础文生图

这个例子展示了如何用一句提示生成图像。

import os
import google.generativeai as genai
from PIL import Image
from io import BytesIO# SDK 会自动从环境变量 `GEMINI_API_KEY` 读取密钥
genai.configure(api_key=os.environ["GEMINI_API_KEY"])# 初始化模型
model = genai.GenerativeModel('gemini-2.5-flash-image-preview')# 编写一个有趣的提示
prompt = "一张关于'纳米香蕉'菜肴的照片,在一家以Gemini为主题的高档餐厅里,照片风格要非常逼真。"print("正在生成图像,请稍候...")
# 生成内容
response = model.generate_content(prompt)# 健壮地处理响应并保存图像
try:# 假设响应中只有一个图像部分image_part = response.parts[0]image_data = image_part.inline_data.dataimage = Image.open(BytesIO(image_data))image.save("generated_image.png")print("图像已成功保存为 generated_image.png")
except (IndexError, AttributeError) as e:print(f"解析图像失败: {e}")print(f"完整响应内容: {response.text}")

5.2.2 示例2:图像 + 文本输入进行编辑

这个例子演示了如何上传本地图片,并用文本指令修改它。

import os
import google.generativeai as genai
from PIL import Image
from io import BytesIOgenai.configure(api_key=os.environ["GEMINI_API_KEY"])
model = genai.GenerativeModel('gemini-2.5-flash-image-preview')# 定义图片路径
image_path = 'path/to/your/cat_image.png'# 检查文件是否存在
try:cat_image = Image.open(image_path)
except FileNotFoundError:print(f"错误: 找不到图片文件 '{image_path}'。请更新路径。")exit()# 定义编辑指令和图像内容
prompt = "使用这张我猫咪的图片,请在它的头上加一顶小小的、针织的巫师帽。"
contents = [prompt, cat_image]print("正在编辑图像...")
response = model.generate_content(contents)# 处理并保存结果
try:edited_image_part = response.parts[0]edited_image_data = edited_image_part.inline_data.dataedited_image = Image.open(BytesIO(edited_image_data))edited_image.save("edited_image.png")print("编辑后的图像已保存为 edited_image.png")
except (IndexError, AttributeError) as e:print(f"解析编辑后的图像失败: {e}")print(f"完整响应内容: {response.text}")

5.2.3 示例3:处理可能包含多部分的复杂响应

API 响应可能包含文本和多个图像,这个函数展示了如何稳健地处理所有内容。

# ...(接续前面的代码)...
def process_response(response, save_prefix="output"):"""处理API响应,保存所有图像并打印所有文本。"""image_count = 0text_parts = []if not response.candidates:print("响应中没有有效内容。")returnfor part in response.candidates[0].content.parts:if part.text:text_parts.append(part.text)elif part.inline_data:image_data = part.inline_data.dataimage = Image.open(BytesIO(image_data))file_name = f"{save_prefix}_image_{image_count}.png"image.save(file_name)print(f"图像已保存为 {file_name}")image_count += 1if text_parts:print("\n收到的文本信息:")print("\n".join(text_parts))# 使用方法:
# response = model.generate_content(...)
# process_response(response)

5.3 Node.js 实现 (@google/generative-ai SDK)

5.3.1 示例1:基础文生图

const { GoogleGenerativeAI } = require("@google/generative-ai");
const fs = require("fs");// SDK 会自动从环境变量 `GEMINI_API_KEY` 读取密钥
const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);async function run() {const model = genAI.getGenerativeModel({ model: "gemini-2.5-flash-image-preview" });const prompt = "一张卡哇伊风格的贴纸,内容是一只快乐的小熊猫戴着一顶小小的竹编帽子,白色背景。";console.log("正在生成贴纸...");const result = await model.generateContent(prompt);const response = await result.response;// 查找并保存图像数据const imagePart = response.candidates[0]?.content?.parts.find(part => part.inlineData);if (imagePart) {const imageData = imagePart.inlineData.data;const buffer = Buffer.from(imageData, "base64");fs.writeFileSync("generated_sticker.png", buffer);console.log("贴纸已保存为 generated_sticker.png");} else {console.log("响应中未找到图像数据。");console.log("文本响应:", response.text());}
}run();

5.3.2 示例2:使用本地图片进行编辑

const { GoogleGenerativeAI } = require("@google/generative-ai");
const fs = require("fs");const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);// 辅助函数:将本地文件转为API需要的格式
function fileToGenerativePart(path, mimeType) {return {inlineData: {data: Buffer.from(fs.readFileSync(path)).toString("base64"),mimeType},};
}async function run() {const model = genAI.getGenerativeModel({ model: "gemini-2.5-flash-image-preview" });const imagePath = "path/to/your/car_image.jpg";if (!fs.existsSync(imagePath)) {console.error(`错误: 找不到图片文件 '${imagePath}'。请更新路径。`);return;}const imageParts = [fileToGenerativePart(imagePath, "image/jpeg"),];const prompt = "根据这张图片,把汽车的颜色改成明亮的黄色。";console.log("正在编辑汽车颜色...");const result = await model.generateContent([prompt, ...imageParts]);const response = await result.response;// 处理并保存结果const editedImagePart = response.candidates[0]?.content?.parts.find(part => part.inlineData);if (editedImagePart) {const imageData = editedImagePart.inlineData.data;const buffer = Buffer.from(imageData, "base64");fs.writeFileSync("edited_car.png", buffer);console.log("编辑后的汽车图片已保存为 edited_car.png");} else {console.log("未找到编辑后的图像数据。");console.log("文本响应:", response.text());}
}run();

5.4 cURL 直接调用:终极武器

对于喜欢用脚本或在无SDK环境中测试的开发者,cURL 是你的好朋友。

# 确保你已经设置了 GEMINI_API_KEY 环境变量
curl -s -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image-preview:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"contents": [{"parts": [{"text": "A close-up, highly detailed photograph of a futuristic robotic bee pollinating a glowing, biomechanical flower."}]}]
}' > response.jsonecho "响应已保存至 response.json。你可以解析它来提取 Base64 编码的图像数据。"

6. 定价、限流与成本规划:让你的项目跑得更远

6.1 定价模型解析:每一分钱都花在刀刃上

  • 输入: 每百万令牌 $0.30 (文本和图像输入都按此计算)。
  • 输出: 每张生成图片 $0.039

关键换算: 你可能会好奇“图片”和“令牌”如何换算。一张 1024x1024 的输出图像,被视为消耗 1290 个令牌。这相当于每百万输出令牌 $30.00 美元。这种透明的换算方式,让你能精确估算成本。

免费额度: 虽然付费API没有明确的免费层级,但在 Google AI Studio 中进行实验是免费的,当然会受到其自身的用量限制。

6.2 API 速率限制:设计可扩展应用的基础

了解吞吐量限制,是防止你的应用在高负载下“掉链子”的关键。

层级每分钟请求数 (RPM)每分钟令牌数 (TPM)每天请求数 (RPD)
标准 API2,0001,500,00050,000
免费层级 (AI Studio)500500,0002,000

6.3 成本控制策略:像专家一样省钱

  • 监控令牌使用: 密切关注 API 响应中的 usageMetadata 字段,它会告诉你每个请求的确切令牌消耗。
  • 善用批处理模式 (Batch Mode): 对于非实时的、可延迟处理的任务,使用批处理模式可以显著降低单位成本。
  • 应用层缓存: 在你的应用中实现缓存机制。对于重复或相似的图像请求,直接返回缓存结果,避免不必要的API调用,这是最有效的省钱方法之一。

7. 驾驭模型:高级提示技巧与避坑指南

在这里插入图片描述

7.1 核心原则:讲故事,而非堆砌关键词

要释放模型的全部潜力,请记住这个核心原则:用叙事性的段落来描述一个完整的场景,而不是简单地罗列关键词。 模型的深度语言理解能力,让它能更好地响应一个连贯、生动的“故事”。

7.2 高级提示工程“食谱”

  • 追求照片真实感?像摄影师一样思考!
    • 相机角度: “低角度拍摄” (low-angle shot)
    • 镜头类型: “85mm 人像镜头,背景虚化” (85mm portrait lens, bokeh)
    • 光照: “黄金时刻的柔和光线” (soft golden hour light)
    • 氛围: “宁静而专业” (serene and professional)
  • 创作风格化插图?明确你的艺术指令!
    • 艺术风格: “卡哇伊风格贴纸” (kawaii-style sticker)
    • 线条处理: “粗犷、清晰的黑色轮廓” (bold, clean black outlines)
    • 背景要求: “纯白色背景,无阴影” (plain white background, no shadows)
  • 拥抱迭代式优化:
  • 别指望一蹴而就。先生成一个基础版本,然后通过具体、小范围的指令进行微调。例如:“太棒了!现在,能让光线更暖一些,像日落时分那样吗?”

7.3 常见问题与解决方案 (FAQ)

  • 问题:预览图看着很模糊,分辨率低?
    • 原因: 这通常是前端界面的预览优化机制,为了加快加载速度。
    • 解决方案: 不必担心。通过 API 返回的原始图像数据,或点击“下载”按钮获得的,才是完整的高分辨率版本。始终以 API 的响应数据为准
  • 问题:输出的总是 JPEG,我想要 PNG 啊!
    • 原因: 这是模型当前的设计决策,旨在平衡性能、文件大小和兼容性。目前无法通过参数配置更改。
    • 解决方案: 如果你的应用场景必须使用 PNG(例如需要透明背景),你需要在接收到图像数据后,在自己的后端进行格式转换
  • 问题:模型输出卡住了,开始重复内容?
    • 解决方案: 尝试调高 temperature 参数(建议 $ \ge 0.8 $),并在提示中加入“请简洁”、“不要重复”之类的引导性指令。
  • 问题:Flash 模型的“思考”预算不总是生效?
    • 说明: 虽然我们讨论的 gemini-2.5-flash-image-preview 模型禁用了思考功能,但这是整个 Flash 家族的一个已知特性。当你在使用其他 Flash 模型时,应了解这个情况。

8. 界智通(jieagi) 结论:工作流革命的开端

Gemini 2.5 Flash Image Preview 的发布,其意义远不止于又多了一个性能更强的图像生成器。它是一个为专业应用而生的工作流自动化引擎。它的真正价值,在于其速度、一致性、以及通过 API 实现深度集成的能力。这使它不再是一个孤立的工具,而是开发者工具箱中一个极具战略意义的、可以被编排和调度的核心组件。

在这里插入图片描述

它的出现,也预示了生成式 AI 的未来轨迹:

  • 从“一次性生成”到“动态交互”: AI 正在从静态的“你问我答”模式,演变为动态、可迭代、可修正的协作模式。
  • 从“艺术玩具”到“生产力工具”: 核心关注点从纯粹的视觉惊艳,转向解决实际工作流中的效率和一致性难题。
  • 从“封闭应用”到“API优先”: 未来的竞争焦点,将不再仅仅是模型本身的能力,更是 API 的易用性、稳定性和生态集成度。

第一代工具让我们看到了魔法,第二代工具提升了魔法的质量。而以 Gemini 2.5 Flash Image Preview 为代表的第三代工具,则致力于将魔法工业化、流程化、自动化

对于我们开发者而言,这意味着一个充满机遇的新时代的开启。我们手中的“积木”变得前所未有的强大和灵活,是时候开始构想和搭建下一代智能创意应用了。

那么,你的第一个应用准备从哪里开始呢?欢迎在评论区分享你的想法!

版权信息: 本文由 界智通(jieagi) 团队编写,保留所有权利。未经授权,不得转载或用于商业用途。


文章转载自:

http://O2G9aONN.bmssj.cn
http://DYxEmupF.bmssj.cn
http://RpqxY1Xq.bmssj.cn
http://DsYbx1Ke.bmssj.cn
http://Qz6UR43M.bmssj.cn
http://SSGEt9ZZ.bmssj.cn
http://ZqQUBdkI.bmssj.cn
http://GvBv7W3Q.bmssj.cn
http://evVt2kFy.bmssj.cn
http://IfQMB0JD.bmssj.cn
http://8cKMDULg.bmssj.cn
http://Gt6yPB6o.bmssj.cn
http://J7jGiOCy.bmssj.cn
http://TNX4i8C7.bmssj.cn
http://C00KwkI2.bmssj.cn
http://WdjbOQoK.bmssj.cn
http://4bw6Tvps.bmssj.cn
http://pHY5sY0w.bmssj.cn
http://sbkDV3Jk.bmssj.cn
http://KLWg3eUf.bmssj.cn
http://PwsD7YDw.bmssj.cn
http://93AyurhN.bmssj.cn
http://IWeRflYv.bmssj.cn
http://Qyome4Ph.bmssj.cn
http://sytqmbbX.bmssj.cn
http://m7EU0dxO.bmssj.cn
http://5IXitw2z.bmssj.cn
http://oSQ8nTkP.bmssj.cn
http://ZSOAER40.bmssj.cn
http://hQXWP0vm.bmssj.cn
http://www.dtcms.com/a/375598.html

相关文章:

  • iOS 使用记录和能耗监控实战,如何查看电池电量消耗、App 使用时长与性能数据(uni-app 开发调试必备指南)
  • 项目讲解1
  • n1 Armbian OS 24.11.0 noble 安装suricata
  • 【算法--链表】114.二叉树展开为链表--通俗讲解
  • IntelliJ IDEA 2025.1 Java Stream Debugger 快速使用指南
  • IDEA2024.1使用Debug调试工具F8步过失效解决方法
  • Java 大视界 -- Java 大数据在智能交通智能公交系统优化与乘客出行服务提升中的应用(409)
  • Java数据结构——树
  • vue3和vue2生命周期的区别
  • 《棒球小白》棒球球落地了才能跑垒吗·棒球1号位
  • 排序算法(Java)
  • Oracle数据库
  • 腾讯开源智能体框架Youtu-agent全解析:特性、架构与实战指南
  • 【2511系统分析师备考-快速阅读一】
  • Vue 学习随笔系列二十五 -- 多文件上传并支持修改
  • 从0到1学习Vue框架Day03
  • 【Redis五种数据类型】
  • Redis 双向同步如何避免循环?【附实操演示】
  • Redis单线程模型为什么快?
  • At least one <template> or <script> is required in a single file component
  • 不止是DELETE:MySQL多表关联删除的JOIN语法实战详解
  • 动态控制rabbitmq中的消费者监听的启动和停止
  • C# 基于halcon的视觉工作流-章30-圆圆距离测量
  • Android Studio 构建项目时 Gradle 下载失败的解决方案
  • 【STM32项目开源】STM32单片机智能恒温箱控制系统
  • 苹果ios的系统app应用WebClip免签应用开源及方式原理
  • Java数据库连接JDBC完全解析
  • Node-RED 究竟是否适合工业场景?
  • zephyr开发环境搭建
  • OpenCV 实战:基于模板匹配的身份证号自动识别系统