Bu sürümdeki yenilikler

  • [Feature] Görüntü dijital imza desteği ve doğrulaması (SIGNATURENET‑5528)
    PNG ve JPG görüntülere dijital imzaların steganografi tabanlı gömülmesini tanıtır. Şifre korumalı imzaları, akış/dosya işleme ve isteğe bağlı algılama eşik değerleriyle tam doğrulamayı destekler.

  • [Enhancement] İmza işlemleri için LINQ sorgularının optimizasyonu (SIGNATURENET‑5500)
    Kütüphane genelinde LINQ mantığı yeniden yapılandırıldı; bellek tahsislerini azaltır ve yürütme hızını artırır. Search ve Verify metodları için koşul‑tabanlı filtreleme eklenir, geliştiricilerin maliyetli işlem öncesinde imzaları önceden filtrelemelerini sağlar.

Düzeltmeler ve iyileştirmeler

  • [Bug Fix] Linux’ta DOC formatı ile GeneratePreview() tip başlatıcı istisnası düzeltildi (SIGNATURENET‑5555)
    Linux ortamlarında Microsoft Word belgeleri için ön izlemeler oluşturulurken artık istisna atılmaz.

Yeni özellikleri nasıl kullanılır

Bir görüntüyü imzalama (steganografi)

using GroupDocs.Signature;
using GroupDocs.Signature.Options;

string inputFile  = "image.png";
string outputFile = "signed_image.png";
string password   = "MySecurePassword123";

using (Signature signature = new Signature(inputFile))
{
    ImageDigitalSignOptions signOptions = new ImageDigitalSignOptions
    {
        Password = password
    };

    SignResult signResult = signature.Sign(outputFile, signOptions);

    if (signResult.Succeeded?.Count > 0)
    {
        Console.WriteLine("Image signed successfully!");
        Console.WriteLine($"Signatures added: {signResult.Succeeded.Count}");
    }
}

İmzalı bir görüntüyü doğrulama

using GroupDocs.Signature;
using GroupDocs.Signature.Options;

string signedFile = "signed_image.png";
string password   = "MySecurePassword123";

using (Signature signature = new Signature(signedFile))
{
    ImageDigitalVerifyOptions verifyOptions = new ImageDigitalVerifyOptions
    {
        Password = password,
        DetectionThresholdPercent = 75   // optional, 0‑100%
    };

    VerificationResult verifyResult = signature.Verify(verifyOptions);

    if (verifyResult.IsValid)
    {
        Console.WriteLine("Digital signature is valid!");
        Console.WriteLine($"Verified signatures: {verifyResult.Succeeded.Count}");
    }
    else
    {
        Console.WriteLine("Digital signature is invalid or not found.");
    }
}

Tam veri çıkarımıyla gelişmiş doğrulama

using (Signature signature = new Signature("signed_image.png"))
{
    ImageDigitalVerifyOptions verifyOptions = new ImageDigitalVerifyOptions
    {
        Password = "MySecurePassword123",
        UseFullDataExtraction = true,          // maximum accuracy
        DetectionThresholdPercent = 85
    };

    VerificationResult verifyResult = signature.Verify(verifyOptions);

    if (verifyResult.IsValid && verifyOptions.DetectedProbability.HasValue)
    {
        Console.WriteLine($"Signature detected with {verifyOptions.DetectedProbability.Value}% probability");
    }
}

Koşullu LINQ‑optimize edilmiş arama

using GroupDocs.Signature;
using GroupDocs.Signature.Options;
using GroupDocs.Signature.Domain;

using (Signature signature = new Signature("document.pdf"))
{
    List<SearchOptions> searchOptions = new List<SearchOptions>
    {
        new TextSearchOptions()
    };

    // Filter only text signatures containing "Approved"
    SearchResult result = signature.Search(searchOptions,
        sig => sig is TextSignature txt && txt.Text.Contains("Approved"));

    foreach (BaseSignature sig in result.Signatures)
    {
        Console.WriteLine($"Found: {((TextSignature)sig).Text}");
    }
}

Koşullu LINQ‑optimize edilmiş doğrulama

using (Signature signature = new Signature("signed_document.pdf"))
{
    TextVerifyOptions verifyOptions = new TextVerifyOptions("John Smith");

    // Verify only signatures on page 1
    List<BaseSignature> result = signature.Verify(verifyOptions,
        sig => sig.PageNumber == 1);

    Console.WriteLine($"Found {result.Count} verified signatures on page 1");
}

Güncellemeyi nasıl alabilirsiniz

  • NuGet – En son GroupDocs.Signature paketine yükseltin:
    dotnet add package GroupDocs.Signature --version 25.12
    
  • Direct Download – Resmi sürüm sayfasından .NET için derlenmiş derlemeleri indirin:
    GroupDocs.Signature for .NET 25.12 DLLs

Kaynaklar