Anmerkung des Autors: Detaillierte Erläuterung zur Steuerung des Bildausgabeformats der Nano Banana Pro API, Speichern als PNG via base64-Dekodierung, inklusive vollständigem Code-Beispiel.
Bei der Generierung von Bildern mit der Nano Banana Pro API stehen viele Entwickler vor dem gleichen Problem: Wie kann man die Ausgabe von PNG anstelle von JPG erzwingen? Dieser Artikel beantwortet diese Frage im Detail und bietet verschiedene Lösungsansätze.
Kerninhalt: Nach der Lektüre dieses Artikels werden Sie die Prinzipien der Formatsteuerung für Nano Banana Pro Bilder verstehen und lernen, wie Sie Bilder in jedem beliebigen Format durch base64-Dekodierung speichern können.

Kernpunkte der Bildformatausgabe von Nano Banana Pro
| Punkt | Erläuterung | Vorteil |
|---|---|---|
| API gibt base64 zurück | inlineData enthält die base64-Kodierung des Bildes |
Rohdatenformat ist neutral |
| Format beim Speichern wählbar | Nach der base64-Dekodierung als PNG/JPG/WebP speicherbar | Entwickler haben volle Kontrolle über die Ausgabe |
| Offiziell keine Formatparameter | Nano Banana Pro hat keinen output_mime_type-Parameter |
Verarbeitung muss clientseitig erfolgen |
| PNG erhält Transparenzkanal | Geeignet für Designszenarien, die einen transparenten Hintergrund erfordern | Verlustfreie Kompression |
| JPG-Dateien sind kleiner | Ideal für fotosähnliche Bilder und die Übertragung im Web | Hohe Kompressionsrate |
Warum bietet die offizielle Dokumentation keine Parameter zur Formatsteuerung?
Ein Blick in die offizielle Google AI-Dokumentation unter ai.google.dev/gemini-api/docs/image-generation zeigt, dass Nano Banana Pro (basierend auf der nativen Bildgenerierung von Gemini) im Gegensatz zu Imagen 3 keinen output_mime_type-Parameter bietet.
Dies liegt daran, dass das Design der API-Antwort von Nano Banana Pro sich von traditionellen Bildgenerierungs-APIs unterscheidet:
- Imagen 3: Ein spezialisiertes Bildgenerierungsmodell, das Parameter wie
output_mime_type='image/jpeg'oder'image/png'unterstützt. - Nano Banana Pro: Die Bildgenerierungsfunktion eines multimodalen Modells, die base64-kodierte Rohbilddaten zurückgibt.
Daher muss die Steuerung des Bildformats bei Nano Banana Pro auf der Clientseite (während des Speicherns) erfolgen und nicht über die API-Anfrage.
Analyse der inlineData-Antwortstruktur
Die Antwortstruktur der Nano Banana Pro API sieht wie folgt aus:
{
"candidates": [{
"content": {
"parts": [
{
"inlineData": {
"mimeType": "image/png",
"data": "iVBORw0KGgoAAAANSUhEUgAA..."
}
}
]
}
}]
}
Erläuterung der Schlüsselfelder:
| Feld | Erläuterung |
|---|---|
inlineData.mimeType |
Der MIME-Typ des Bildes, üblicherweise image/png |
inlineData.data |
Der base64-kodierte String des Bildes |
Da das Feld data die base64-kodierten Rohbilddaten enthält, können Sie diese nach der Dekodierung in jedem beliebigen Format speichern.

Schnelleinstieg in die Bildformatsteuerung mit Nano Banana Pro
Methode 1: Direkt als PNG speichern (empfohlen)
Der einfachste Weg ist, beim Speichern direkt die Dateiendung .png anzugeben:
import google.generativeai as genai
import base64
# 配置 APIYI 接入
genai.configure(
api_key="YOUR_API_KEY",
transport="rest",
client_options={"api_endpoint": "https://vip.apiyi.com"}
)
# 生成图片
model = genai.GenerativeModel("nano-banana-pro")
response = model.generate_content("一只可爱的橘猫,白色背景")
# 提取 base64 数据并保存为 PNG
for part in response.candidates[0].content.parts:
if hasattr(part, 'inline_data') and part.inline_data:
image_data = base64.b64decode(part.inline_data.data)
with open("output.png", "wb") as f:
f.write(image_data)
print("图片已保存为 PNG 格式")
Vollständigen Code zum Speichern in mehreren Formaten anzeigen
import google.generativeai as genai
import base64
from PIL import Image
import io
from typing import Literal
class NanoBananaImageSaver:
"""
Nano Banana Pro 图片格式转换工具
支持 PNG、JPG、WebP 等多种格式
"""
def __init__(self, api_key: str):
genai.configure(
api_key=api_key,
transport="rest",
client_options={"api_endpoint": "https://vip.apiyi.com"}
)
self.model = genai.GenerativeModel("nano-banana-pro")
def generate_and_save(
self,
prompt: str,
output_path: str,
format: Literal["PNG", "JPEG", "WEBP"] = "PNG",
quality: int = 95
) -> bool:
"""
生成图片并保存为指定格式
Args:
prompt: 生成提示词
output_path: 输出文件路径
format: 输出格式 (PNG/JPEG/WEBP)
quality: 压缩质量 (仅对 JPEG/WEBP 有效, 1-100)
"""
try:
response = self.model.generate_content(prompt)
for part in response.candidates[0].content.parts:
if hasattr(part, 'inline_data') and part.inline_data:
# 解码 base64
image_data = base64.b64decode(part.inline_data.data)
# 使用 PIL 打开并转换格式
image = Image.open(io.BytesIO(image_data))
# 处理透明通道 (PNG → JPEG 需要)
if format == "JPEG" and image.mode == "RGBA":
# 创建白色背景
background = Image.new("RGB", image.size, (255, 255, 255))
background.paste(image, mask=image.split()[3])
image = background
# 保存为指定格式
save_params = {}
if format in ["JPEG", "WEBP"]:
save_params["quality"] = quality
image.save(output_path, format=format, **save_params)
print(f"图片已保存: {output_path} (格式: {format})")
return True
return False
except Exception as e:
print(f"保存失败: {e}")
return False
# 使用示例
if __name__ == "__main__":
saver = NanoBananaImageSaver("YOUR_API_KEY")
# 保存为 PNG (无损,保留透明通道)
saver.generate_and_save(
prompt="现代建筑外观,透明背景",
output_path="building.png",
format="PNG"
)
# 保存为 JPEG (有损压缩,文件更小)
saver.generate_and_save(
prompt="风景照片,落日海滩",
output_path="sunset.jpg",
format="JPEG",
quality=85
)
# 保存为 WebP (现代格式,兼顾质量和体积)
saver.generate_and_save(
prompt="产品展示图",
output_path="product.webp",
format="WEBP",
quality=90
)
Empfehlung: Erhalten Sie Zugriff auf die Nano Banana Pro API über APIYI (apiyi.com). Die Plattform bietet einen stabilen Zugang, Preise ab 20 % des Originalpreises und unterstützt Batch-Aufrufe.
Vergleich der Bildformat-Optionen für Nano Banana Pro

| Format | Kompressionstyp | Transparenzkanal | Dateigröße | Anwendungsbereiche |
|---|---|---|---|---|
| PNG | Verlustfrei | ✅ Unterstützt | Größer | Design-Assets, Icons, transparente Hintergründe |
| JPEG | Verlustbehaftet | ❌ Nein | Minimal | Fotos, Landschaften, Web-Übertragung |
| WebP | Verlustfrei/Verlustbehaftet | ✅ Unterstützt | Kleiner | Moderne Websites, mobile Apps |
Details zu den einzelnen Formaten
Anwendungsszenarien für PNG:
- Design-Assets, die einen transparenten Hintergrund benötigen.
- Szenarien mit extrem hohen Anforderungen an die Bildqualität.
- Zwischenmaterialien, die wiederholt bearbeitet werden müssen.
- Icons und Logos, die scharfe Kanten erfordern.
Anwendungsszenarien für JPEG:
- Fotografische Bilder (Landschaften, Porträts, Produktfotos).
- Web-Übertragungen, bei denen die Dateigröße entscheidend ist.
- Teilen in sozialen Medien.
- Allgemeine Bilder ohne Bedarf an Transparenz.
Anwendungsszenarien für WebP:
- Moderne Web-Anwendungen (hohe Browser-Unterstützung).
- In mobile Apps eingebettete Bilder.
- Szenarien, die eine gute Balance zwischen Qualität und Dateigröße erfordern.
- Animierte Bilder (kann GIF ersetzen).
Nano Banana Pro Fortgeschrittene Bildformatkonvertierung
Node.js Version Implementierung
const { GoogleGenerativeAI } = require("@google/generative-ai");
const fs = require("fs");
const sharp = require("sharp");
async function generateAndSave(prompt, outputPath, format = "png") {
const genAI = new GoogleGenerativeAI("YOUR_API_KEY");
const model = genAI.getGenerativeModel({ model: "nano-banana-pro" });
const result = await model.generateContent(prompt);
const response = await result.response;
for (const part of response.candidates[0].content.parts) {
if (part.inlineData) {
const buffer = Buffer.from(part.inlineData.data, "base64");
// Format mit sharp konvertieren
let sharpInstance = sharp(buffer);
switch (format.toLowerCase()) {
case "png":
sharpInstance = sharpInstance.png();
break;
case "jpeg":
case "jpg":
sharpInstance = sharpInstance.jpeg({ quality: 85 });
break;
case "webp":
sharpInstance = sharpInstance.webp({ quality: 90 });
break;
}
await sharpInstance.toFile(outputPath);
console.log(`Bild gespeichert: ${outputPath}`);
}
}
}
// PNG-Ausgabe erzwingen
generateAndSave("Ein niedlicher Cartoon-Charakter", "character.png", "png");
cURL Kommandozeilen-Version
# API aufrufen und als PNG speichern
curl -X POST "https://vip.apiyi.com/v1/models/nano-banana-pro:generateContent" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"contents":[{"parts":[{"text":"Eine süße orangefarbene Katze"}]}]}' \
| jq -r '.candidates[0].content.parts[] | select(.inlineData) | .inlineData.data' \
| base64 --decode > output.png
echo "Bild als output.png gespeichert"
Häufig gestellte Fragen (FAQ)
F1: Warum lässt sich mein gespeichertes Bild nicht öffnen?
Der häufigste Grund ist eine fehlerhafte Base64-Dekodierung. Stellen Sie sicher, dass:
- Der vollständige Inhalt des Feldes
inline_data.dataextrahiert wurde. - Die korrekte Base64-Dekodierungsmethode verwendet wird.
- Die Datei im Binärmodus geschrieben wird (
"wb"statt"w").
Falls das Problem weiterhin besteht, prüfen Sie das Feld mimeType in der API-Antwort, um den Bildtyp zu bestätigen.
F2: PNG oder JPEG – was eignet sich besser für KI-generierte Bilder?
Das hängt vom Verwendungszweck ab:
- PNG: Ideal für die nachträgliche Bearbeitung, transparente Hintergründe oder Szenarien mit extrem hohen Qualitätsanforderungen.
- JPEG: Ideal für die direkte Veröffentlichung, die Übertragung im Web oder wenn die Dateigröße kontrolliert werden muss.
Wenn Sie unsicher sind, empfiehlt es sich, zuerst als PNG (verlustfrei) zu speichern und bei Bedarf später in andere Formate zu konvertieren.
F3: Wie kann ich schnell mit dem Testen von Nano Banana Pro beginnen?
Wir empfehlen die Nutzung der APIYI-Plattform für Tests:
- Besuchen Sie APIYI (apiyi.com) und registrieren Sie ein Konto.
- Holen Sie sich Ihren Nano Banana Pro API Key.
- Nutzen Sie die Codebeispiele aus diesem Artikel – der Preis beträgt nur etwa 20 % des offiziellen Preises.
- Online-Vorschau: Unter imagen.apiyi.com können Sie die Bildgenerierung direkt testen.
Fazit
Die wichtigsten Punkte zur Steuerung des Bildformats bei Nano Banana Pro:
- API liefert base64-Kodierung:
inlineData.dataenthält formatneutrale Rohdaten. Das Format kann beim Speichern frei gewählt werden. - Keine offiziellen Formatparameter: Im Gegensatz zu Imagen 3 unterstützt Nano Banana Pro den Parameter
output_mime_typenicht. - Clientseitige Steuerung des Ausgabeformats: Nach der base64-Dekodierung können Tools wie PIL oder Sharp verwendet werden, um das Bild als PNG, JPEG oder WebP zu speichern.
- Formatwahl je nach Anwendungsszenario: PNG eignet sich für Design-Elemente, JPEG für Fotos und WebP für moderne Webanwendungen.
Sobald Sie das Prinzip der base64-Dekodierung verstanden haben, haben Sie die volle Kontrolle über das Ausgabeformat der von Nano Banana Pro generierten Bilder.
Es wird empfohlen, den API-Zugriff für Nano Banana Pro über APIYI (apiyi.com) zu beziehen. Die Plattform bietet einen stabilen Service zu Preisen, die 80 % unter denen der offiziellen Website liegen, und unterstützt die Stapelverarbeitung.
📚 Referenzen
⚠️ Hinweis zum Linkformat: Alle externen Links verwenden das Format
Name der Quelle: domain.com. Dies erleichtert das Kopieren, verhindert jedoch direkte Klicks, um den Verlust von SEO-Gewichtung zu vermeiden.
-
Google AI Dokumentation zur Bilderzeugung: Leitfaden für Best Practices der offiziellen API
- Link:
ai.google.dev/gemini-api/docs/image-generation - Beschreibung: Enthält die
inlineData-Antwortstruktur und Codebeispiele.
- Link:
-
Pillow (PIL) Dokumentation: Python-Bibliothek zur Bildverarbeitung
- Link:
pillow.readthedocs.io - Beschreibung: Unterstützt das Lesen, Konvertieren und Speichern zahlreicher Bildformate.
- Link:
-
Sharp Dokumentation: Hochleistungs-Bildverarbeitungsbibliothek für Node.js
- Link:
sharp.pixelplumbing.com - Beschreibung: Unterstützt PNG/JPEG/WebP-Konvertierung mit exzellenter Performance.
- Link:
-
APIYI Nano Banana Pro Bereich: Dokumentation zur Integration
- Link:
apiyi.com - Beschreibung: Bietet Dokumentation, Codebeispiele und Preisinformationen.
- Link:
Autor: Technik-Team
Technischer Austausch: Diskutieren Sie gerne Tipps zur Nutzung von Nano Banana Pro in den Kommentaren. Weitere Ressourcen finden Sie in der APIYI Tech-Community auf apiyi.com.
