GroupDocs.Watermark ile Java’da resim filigranı ekleme: kapsamlı bir rehber

Java’da bir resim filigranı eklemek, marka kimliğini korumak ve belge özgünlüğünü sağlamak için yaygın bir gereksinimdir. Bu öğreticide add image watermark java işlemini GroupDocs.Watermark kütüphanesini kullanarak nasıl yapacağınızı keşfedecek, görüntü dosyasını yüklemekten mevcut filigranları aramaya ve yeni grafiklerle değiştirmeye kadar her şeyi kapsayacaksınız. Sonunda, PDF, Word dosyaları ve görüntü‑tabanlı belgeler üzerinde çalışan yeniden kullanılabilir bir desen elde edeceksiniz.

Hızlı cevaplar

  • Java’da resim filigranlarını hangi kütüphane yönetir? GroupDocs.Watermark for Java.
  • Üretim kullanımında lisansa ihtiyacım var mı? Evet, ticari lisans deneme sınırlamalarını kaldırır.
  • PDF’ler ve Office dosyalarıyla çalışabilir miyim? Evet, API 30’dan fazla formatı destekler.
  • Hangi Java sürümü gereklidir? JDK 8 veya daha yenisi.
  • Bağımlılığı eklemenin tek yolu Maven mi? Maven önerilir, ancak JAR’ı manuel olarak da indirebilirsiniz.

add image watermark java nedir?

add image watermark java ifadesi, Java kodu kullanarak bir belgeye raster grafik (PNG, JPEG, BMP vb.) gömmek sürecini tanımlar. Bu teknik, orijinal içerik düzenini bozmadan logolar, telif hakkı bildirimleri veya güvenlik damgaları eklemenizi sağlar.

Neden GroupDocs.Watermark for Java kullanmalı?

GroupDocs.Watermark 30+ input and output formats destekler—PDF, DOCX, XLSX, PPTX ve yaygın görüntü türleri dahil—ve çok sayfalı dosyaları belgenin tamamını belleğe yüklemeden işler. Kütüphanenin hash‑tabanlı arama motoru, filigranları > %95 doğrulukla bulabilir, büyük arşivleri tarama süresini %70’e kadar azaltır.

Önkoşullar

  • Java Development Kit (JDK): sürüm 8 veya daha yeni yüklü.
  • GroupDocs.Watermark for Java: sürüm 24.11 (bu rehberde kullanılan sürüm).
  • Maven: bağımlılık yönetimi için, ancak manuel JAR indirme de çalışır.

Maven’e yeniyseniz, aşağıdaki pom.xml snippet’i eklemeniz gerekeni tam olarak gösterir.

Maven kurulumu

GroupDocs.Watermark’ı bağımlılık olarak eklemek için pom.xml dosyanıza aşağıdaki yapılandırmayı ekleyin:

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/watermark/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-watermark</artifactId>
      <version>24.11</version>
   </dependency>
</dependencies>

Doğrudan indirme

Alternatif olarak, en son sürümü doğrudan GroupDocs.Watermark for Java releases adresinden indirebilirsiniz.

Lisans edinme

  • Ücretsiz deneme: Temel özellikleri keşfetmek için deneme paketini indirin.
  • Geçici lisans: GroupDocs portalından sınırlı süreli bir anahtar alarak genişletilmiş test yapın.
  • Ticari lisans: Sınırsız üretim kullanımı ve öncelikli destek için tam lisans satın alın.

add image watermark java adım adım nasıl eklenir

Watermark sınıfı, filigran işlemleri için işlenebilen bir belgeyi temsil eder. ImageSearchOptions filigranları bulmak için kriterleri yapılandırır. WatermarkSearchResult bir arama sonucunda bulunan filigran koleksiyonunu tutar. setImage() yöntemi bir filigranın görüntüsünü değiştirir ve document.save() değiştirilmiş belgeyi diske yazar.

Hedef belgenizi yükleyin, mevcut filigranları bulun ve yeni bir görüntüyle değiştirin—tüm bunlar üç kısa adımda gerçekleşir. Aşağıdaki doğrudan yanıt, her bir parçaya dalmadan önce genel akışı açıklar.

PDF’yi (veya desteklenen diğer dosyayı) Watermark.load() ile yükleyin, sağlanan hash ile eşleşen filigranları bulmak için bir ImageSearchOptions nesnesi yapılandırın, dönen koleksiyon üzerinde yineleme yapın, yeni bayt dizinizle setImage() çağırın ve sonunda save() ile değiştirilmiş belgeyi kaydedin. Bu desen PDF, Word, Excel, PowerPoint ve görüntü dosyaları için çalışır ve yalnızca hedeflenen filigranların değiştirildiğinden emin olur.

Adım 1: java görüntü dosyasını yükle

Filigranı değiştirmek için önce yeni görüntüyü bir bayt dizisi olarak elde etmeniz gerekir. Aşağıdaki kod, herhangi bir görüntü dosyasını diskteki konumundan belleğe okur; ardından bu bayt dizisini filigran API’sine besleyebilirsiniz.

import com.groupdocs.watermark.Watermarker;

public class Main {
    public static void main(String[] args) {
        Watermarker watermarker = new Watermarker("YOUR_DOCUMENT_PATH.pdf");
        // Proceed to use GroupDocs.Watermark functionalities.
    }
}

Açıklama: Bu snippet, bir FileInputStreami try‑with‑resources bloğu içinde sarar, böylece akış otomatik olarak kapanır. Bu, özellikle toplu işlerde birçok belge işlenirken dosya‑tanıtıcı sızıntılarını önler.

Adım 2: bir belgede filigranları ara

Arama kriterlerini yapılandırın, böylece motor hangi filigranları hedefleyeceğini bilir. Görüntü hash’i, boyut veya opaklık gibi özelliklerle eşleşebilir; aşağıdaki örnek yüksek hassasiyet için hash‑tabanlı bir yaklaşım kullanır.

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

public class LoadImageData {
    private static final String IMAGE_PNG_PATH = "YOUR_DOCUMENT_DIRECTORY/image.png";

    public byte[] loadImageData() throws Exception {
        File imageFile = new File(IMAGE_PNG_PATH);
        byte[] imageData = new byte[(int) imageFile.length()];
        try (InputStream imageInputStream = new FileInputStream(imageFile)) {
            imageInputStream.read(imageData); // Read the file into the byte array.
        }
        return imageData;
    }
}

Açıklama: Watermark.search() bir WatermarkSearchResult koleksiyonu döndürür. Orijinal filigranın hash’iyle bir ImageSearchOptions nesnesi sağlayarak API, alakasız grafikleri filtreler ve size temiz bir eşleşme listesi sunar.

Adım 3: filigranlardaki görüntüyü değiştir

Bulunan filigranlar üzerinde yineleme yapın ve her birinin görüntü verisini Adım 1’de oluşturduğunuz yeni bayt dizisiyle değiştirin. Güncellemeden sonra belgeyi yeni bir dosyaya kaydedin, böylece orijinali korunur.

import com.groupdocs.watermark.Watermarker;
import com.groupdocs.watermark.search.ImageDctHashSearchCriteria;
import com.groupdocs.watermark.search.PossibleWatermarkCollection;

public class SearchForWatermarks {
    private static final String INPUT_PDF_PATH = "YOUR_DOCUMENT_DIRECTORY/document.pdf";

    public PossibleWatermarkCollection searchWatermarks() throws Exception {
        Watermarker watermarker = new Watermarker(INPUT_PDF_PATH);
        ImageDctHashSearchCriteria searchCriteria = new ImageDctHashSearchCriteria("YOUR_DOCUMENT_DIRECTORY/logo.bmp");
        
        return watermarker.search(searchCriteria);
    }
}

Açıklama: Döngü, her eşleşme için watermark.setImage(newImageBytes) çağırır, ardından document.save(outputPath) ile değişiklikleri kalıcı hâle getirir. API yerinde çalıştığı için kaç filigran değiştirildiğine bakılmaksızın tek bir kaydetme işlemi yeterlidir.

Yaygın sorunlar ve sorun giderme

LoadOptions, bir belgeyi açarken şifre veya yükleme modu gibi parametreleri belirlemenizi sağlar. LoadMode enum’u dosyanın nasıl yükleneceğini tanımlar, örneğin akış erişimi için STREAM.

BelirtiMuhtemel nedenÇözüm
Filigran bulunamadıArama hash’i eşleşmiyor (farklı çözünürlük veya renk derinliği)Tam kaynak dosyasından hash oluşturun veya bulanık eşleşmeye izin vermek için ImageSearchOptions.setSimilarity(0.85) kullanın.
Büyük PDF’lerde bellek dışı hataTüm belge belleğe yüklendiDosyayı akış olarak işlemek için Watermark.load(inputPath, LoadOptions.create().setLoadMode(LoadMode.STREAM)) kullanın.
Kaydedilen belge bozukÇıktı akışı düzgün kapanmadıtry‑with‑resources kullanıldığından emin olun veya kaydetmeden sonra document.close() çağırın.
Yeni filigran kaymış görünüyorOrijinal filigranın döndürme veya ölçekleme meta verileri vardıOrijinal Watermark.getTransform() ayarlarını koruyun ve yeni görüntüye watermark.setTransform(originalTransform) ile uygulayın.

Sıkça sorulan sorular

S: Şifre korumalı bir PDF’e filigran ekleyebilir miyim?
C: Evet. Belgeyi Watermark.load(path, new LoadOptions(password)) ile yükleyin, API işleme için şifreyi çözer.

S: GroupDocs.Watermark SVG görüntülerini destekliyor mu?
C: Kütüphane SVG dosyalarını PNG’ye rasterleştirerek ekleyebilir, ancak yerel SVG ekleme şu anda mevcut değildir.

S: Tek bir çağrıda kaç sayfa işlenebilir?
C: API, 500+ sayfa içeren belgeleri tüm dosyayı belleğe yüklemeden işleyebilir; bu, akış mimarisi sayesinde mümkündür.

S: Aynı belgeye birden fazla farklı filigran eklemek mümkün mü?
C: Kesinlikle. Her görüntü için ayrı Watermark nesneleri oluşturun ve her biri için document.add(watermark) çağırın.

S: Java SDK için hangi platformlar destekleniyor?
C: Windows, Linux ve macOS desteklenir; kütüphane, Docker konteynerleri dahil olmak üzere herhangi bir JVM‑uyumlu ortamda çalışır.


Son Güncelleme: 2026-08-04
Test Edilen: GroupDocs.Watermark 24.11 for Java
Yazar: GroupDocs

import com.groupdocs.watermark.Watermarker;
import com.groupdocs.watermark.search.PossibleWatermarkCollection;

public class ReplaceImageInWatermarks {
    private static final String OUTPUT_PDF_PATH = "YOUR_OUTPUT_DIRECTORY/modified_document.pdf";
    
    public void replaceImages(PossibleWatermarkCollection watermarks, byte[] newImageData) throws Exception {
        Watermarker watermarker = new Watermarker(INPUT_PDF_PATH);

        for (PossibleWatermark watermark : watermarks) {
            try {
                watermark.setImageData(newImageData);
            } catch (Exception e) {
                // Handle exceptions related to unsupported formats or entities.
            }
        }

        watermarker.save(OUTPUT_PDF_PATH);
        watermarker.close();
    }
}

İlgili Eğitimler