Vektör grafiklerini raster görüntülere dönüştürmek, sunucuda küçük resimler, ön izlemeler veya PDF’ler oluştururken sıkça ihtiyaç duyulan bir gereksinimdir. GroupDocs.Conversion Cloud SDK for Node.JS bulutta tamamen SVG‘den PNG dönüşümünü yöneten sağlam bir kütüphane sunar. Bu rehberde tam çalışan bir örnek, eşleşen bir cURL iş akışı, yapılandırma ipuçları ve en iyi uygulama önerilerini göreceksiniz. Sonunda, sunucu tarafı SVG’den PNG’ye dönüşümünü herhangi bir Node.JS uygulamasına entegre edebileceksiniz.
Node.JS’te SVG’den PNG’ye Dönüştürme için Tam Çalışan Örnek
Bu örnek, GroupDocs Cloud depolamasında saklanan bir SVG dosyasını, GroupDocs.Conversion Cloud SDK for Node.JS kullanarak PNG görüntüsüne dönüştürmeyi göstermektedir.
const { Configuration, ConvertApi, ConvertDocumentRequest, ConvertSettings, PngOptions, StorageApi, DownloadFileRequest } = require("@groupdocs/conversion-cloud");
const fs = require('fs');
const path = require('path');
// -----------------------------------------------------------------------------
// Configuration – replace with your own credentials
// -----------------------------------------------------------------------------
const config = new Configuration({
clientId: "YOUR_CLIENT_ID",
clientSecret: "YOUR_CLIENT_SECRET"
});
const convertApi = new ConvertApi(config);
const storageApi = new StorageApi(config);
// -----------------------------------------------------------------------------
// Define source SVG and target PNG locations inside GroupDocs Cloud storage
// -----------------------------------------------------------------------------
const inputSvgPath = "input/sample.svg"; // SVG stored in cloud storage
const outputPngPath = "output/sample.png"; // Desired PNG location
// -----------------------------------------------------------------------------
// PNG conversion options – set dimensions to control memory/CPU usage
// -----------------------------------------------------------------------------
const pngOptions = new PngOptions({
width: 1024, // Resize width (optional)
height: 768, // Resize height (optional)
backgroundColor: "#FFFFFF" // Ensure opaque background
});
// -----------------------------------------------------------------------------
// Build conversion settings object
// -----------------------------------------------------------------------------
const convertSettings = new ConvertSettings({
filePath: inputSvgPath,
format: "png",
outputPath: outputPngPath,
options: pngOptions
});
const convertRequest = new ConvertDocumentRequest(convertSettings);
// -----------------------------------------------------------------------------
// Execute conversion, then download the PNG locally
// -----------------------------------------------------------------------------
convertApi.convertDocument(convertRequest)
.then(convResult => {
console.log("Conversion succeeded. Cloud file:", convResult.path);
const downloadReq = new DownloadFileRequest({ path: convResult.path });
return storageApi.downloadFile(downloadReq);
})
.then(fileBuffer => {
const localFile = path.resolve(__dirname, "sample.png");
fs.writeFileSync(localFile, fileBuffer);
console.log("PNG downloaded to:", localFile);
})
.catch(err => {
console.error("Error during SVG → PNG conversion:", err);
})
.finally(() => {
// Clean up HTTP client resources if the SDK exposes a close method
if (config && config.httpClient && typeof config.httpClient.close === "function") {
config.httpClient.close();
}
});
Not: Bu kod örneği temel işlevselliği göstermektedir. Projenizde kullanmadan önce dosya yollarını (
input/sample.svg,output/sample.pngvb.) gerçek dosya konumlarınıza uygun şekilde güncellediğinizden, tüm gerekli bağımlılıkların doğru şekilde yüklendiğinden emin olun ve geliştirme ortamınızda kapsamlı bir şekilde test edin. Herhangi bir sorunla karşılaşırsanız, lütfen resmi dokümantasyona başvurun veya destek ekibi ile iletişime geçin.
cURL Kullanarak REST API ile SVG’den PNG’ye Dönüştürme
Saf bir REST yaklaşımını tercih ediyorsanız, aynı dönüşüm cURL komutlarıyla gerçekleştirilebilir. Aşağıdaki adımlar bir erişim belirteci almayı, SVG’yi yüklemeyi, dönüşümü başlatmayı ve PNG’yi indirmeyi gösterir.
Kimlik Doğrulama ve Erişim Belirteci Al
curl -X POST "https://api.groupdocs.cloud/v2.0/auth/token" \
-H "Content-Type: application/json" \
-d '{
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET"
}'
Yanıt, sonraki çağrılarda kullanacağınız bir access_token içerir.
Kaynak SVG Dosyasını Yükle
curl -X POST "https://api.groupdocs.cloud/v2.0/storage/upload?path=input/sample.svg" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@/path/to/local/sample.svg"
SVG’den PNG’ye Dönüşümü Gerçekleştirin
curl -X POST "https://api.groupdocs.cloud/v2.0/conversion/convert" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"filePath": "input/sample.svg",
"format": "png",
"outputPath": "output/sample.png",
"options": {
"width": 1024,
"height": 768,
"backgroundColor": "#FFFFFF"
}
}'
API, bulut depolama alanında yeni oluşturulan PNG dosyasının yolunu döndürür.
Sonuç PNG Dosyasını İndir
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/download?path=output/sample.png" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o sample.png
Bu cURL komutları, kod yazmadan dönüşüm süreci üzerinde tam kontrol sağlar. Daha fazla ayrıntı için, resmi API belgelerine bakın.
Node.JS’de SVG’den PNG’ye Dönüşüm Nasıl Çalışır
SDK Sınıflarını İçe Aktar -
require("@groupdocs/conversion-cloud")ifadesi,ConvertApi,ConvertSettingsvePngOptionsgibi temel sınıfları yükler (API referansı).const { ConvertApi, ConvertSettings, PngOptions } = require("@groupdocs/conversion-cloud");Kimlik Doğrulamayı Yapılandır - Bir
ConfigurationnesnesiclientIdveclientSecretdeğerlerinizi tutar. Bu nesne, sonraki tüm çağrıları yetkilendirmek için hemConvertApihem deStorageApi‘ye geçirilir.const config = new Configuration({ clientId: "YOUR_CLIENT_ID", clientSecret: "YOUR_CLIENT_SECRET" });Giriş ve Çıkış Yollarını Tanımlayın -
inputSvgPathbulut depolamadaki SVG’ye işaret eder,outputPngPathise PNG’nin kaydedileceği yeri belirtir.const inputSvgPath = "input/sample.svg"; const outputPngPath = "output/sample.png";PNG Seçeneklerini Ayarla -
PngOptionsboyutları ve arka plan rengini kontrol etmenizi sağlar; bu, büyük veya şeffaf SVG’ler için faydalıdır.const pngOptions = new PngOptions({ width: 1024, height: 768, backgroundColor: "#FFFFFF" });Dönüştürme Ayarlarını Oluştur ve Çalıştır -
ConvertSettingsdosya yolunu, hedef formatı, çıktı konumunu ve seçenekleri bir araya getirir.convertDocumentyöntemi dönüşümü gerçekleştirir ve sonuç PNG’nin bulut yolunu içerir.const convertSettings = new ConvertSettings({ filePath: inputSvgPath, format: "png", outputPath: outputPngPath, options: pngOptions }); const convertRequest = new ConvertDocumentRequest(convertSettings); convertApi.convertDocument(convertRequest);PNG’yi İndir - Dönüştürmeden sonra,
StorageApi.downloadFileikili veriyi alır ve bu veriyi yerel dosya sistemine yazabilirsiniz.
Her adımı anlamak, süreci özelleştirmenize, hataları yönetmenize ve dönüşümü daha büyük iş akışlarına entegre etmenize yardımcı olur.
Kurulum ve Yapılandırma GroupDocs.Conversion Cloud SDK for Node.JS
npm install groupdocs-conversion-cloud
SDK, Node.js 12 ve üzeri bir sürüm gerektirir. Kurulumdan sonra, clientId ve clientSecret (GroupDocs Cloud hesabınızdan temin edilebilir) içeren bir yapılandırma nesnesi oluşturun. En son paket sürümünü görmek için indirme sayfası adresine bakın.
const { Configuration } = require("@groupdocs/conversion-cloud");
const config = new Configuration({
clientId: "YOUR_CLIENT_ID",
clientSecret: "YOUR_CLIENT_SECRET"
});
Kimlik bilgilerinin depolama ve dönüşüm hizmetlerine erişim iznine sahip olduğundan emin olun. Yapılandırıldıktan sonra, kod örneğinde gösterildiği gibi ConvertApi ve StorageApi nesnelerini örnekleyebilirsiniz.
PNG Dönüştürme Ayarlarını İnce Ayarlama
PngOptions sınıfı, ayarlayabileceğiniz birkaç özelliği sunar:
- width / height - Çıktı çözünürlüğünü tanımlayın. Daha büyük değerler kaliteyi artırır ancak daha fazla bellek tüketir.
const pngOptions = new PngOptions({ width: 1920, height: 1080 }); - backgroundColor - Şeffaflık içeren SVG’ler için katı bir arka plan ayarlayın.
const pngOptions = new PngOptions({ backgroundColor: "#000000" }); - compressionLevel - (Destekleniyorsa) Dosya boyutunu azaltmak için 0 (sıkıştırma yok) ile 9 (maksimum sıkıştırma) arasında bir sıkıştırma seviyesi seçin.
const pngOptions = new PngOptions({ compressionLevel: 6 });
Bu seçenekler, ConvertSettings nesnesinin options özelliği aracılığıyla iletilir. Mevcut ayarların tam listesi için API referansı bakın.
Verimli SVG’den PNG’ye Dönüşüm İçin En İyi Uygulamalar
- SVG İçeriğini Doğrulayın - SVG’nin dış betikler veya kötü amaçlı yükler içermediğinden, yüklemeden önce emin olun. GroupDocs.Conversion girişi temizler, ancak ön‑doğrulama ekstra bir güvenlik katmanı ekler.
- Yapılandırma Nesnesini Yeniden Kullanın -
Configurationörneğini tek bir kez oluşturun ve birden fazlaConvertApiçağrısı arasında paylaşarak yükü azaltın. - Mantıklı Boyutlar Belirleyin - Genişlik ve yüksekliği gerçekten ihtiyacınız olan boyuta sınırlayın. Aşırı büyük görseller işleme süresini ve bellek kullanımını artırır.
- Büyük Dosyaları Akış Olarak İşleyin - Çok büyük SVG’ler için, tüm tamponu belleğe yüklemek yerine indirmeyi akış olarak işlemeyi düşünün.
- API Kullanımını İzleyin - Dönüştürme kotanızı izleyin ve oran sınırlama yanıtlarını nazikçe yönetin.
Sonuç
GroupDocs.Conversion Cloud SDK for Node.JS sunucu‑tarafı SVG’den PNG’ye dönüşümü basit, ölçeklenebilir ve güvenli hâle getirir. Tam kod örneğini, eşdeğer cURL iş akışını ve yukarıdaki yapılandırma ipuçlarını izleyerek, yüksek performanslı görüntü dönüşümünü herhangi bir backend servisine entegre edebilirsiniz. Lisans seçeneklerini gözden geçirmeyi unutmayın; üretim dağıtımları ücretli bir abonelik gerektirir ve test için geçici bir lisans alabilirsiniz geçici lisans sayfasından. Bugün dönüştürmeye başlayın ve kullanıcılarınıza net PNG varlıkları sunun.
FAQs
Node.JS kullanarak GroupDocs ile SVG’den PNG’ye dönüşüm nasıl yapılır?
GroupDocs.Conversion Cloud SDK for Node.JS’yi kullanın. SVG’yi bulut depolamaya yükleyin, PngOptions‘ı yapılandırın, convertDocument‘ı çağırın ve PNG’yi indirin. Bu makaledeki tam kod örneği her adımı gösterir.
Bir seferde birçok SVG dosyasını toplu olarak dönüştürebilir miyim?
Evet. SVG yollarının bir listesini yineleyin ve her dosya için aynı dönüşüm isteğini çağırın. SDK, her isteği bağımsız olarak işler, böylece tüm PNG sonuçlarını tek bir çıktı klasöründe saklayabilirsiniz.
Dönüştürme bir hata ile başarısız olursa ne yapmalıyım?
Catch bloğunda döndürülen hata mesajını kontrol edin. Yaygın sorunlar arasında geçersiz kimlik bilgileri, eksik dosya yolları veya desteklenmeyen SVG özellikleri bulunur. Ayrıntılı hata kodları ve sorun giderme adımları için resmi belgeleri inceleyin.
PNG seçenekleri hakkında daha fazla bilgi nerede bulabilirim?
Tüm yapılandırılabilir özellikler PngOptions için API referansında listelenmiştir. Ek ayarları, örneğin sıkıştırma seviyesi ve renk derinliği gibi, keşfetmek için API referansı adresini ziyaret edin.
