Przycinaj obrazy w Javie

W poprzednich postach na blogu pokazaliśmy, jak zaimplementować różne funkcje edycji obrazu, takie jak zmiana rozmiaru, przerzucanie i obracanie obrazów. Wraz z tymi funkcjami przycinanie obrazu jest niezwykle wykorzystywane do przycinania niechcianych obszarów na obrazach. Ponadto przycinasz obraz, aby ustawić ostrość na określonym obiekcie w ramce. W tym artykule dowiesz się, jak programowo kadrować obrazy w Javie. Pokażemy, jak przyciąć obraz za pomocą wartości przesunięcia lub prostokąta.

Java API do przycinania obrazów — do pobrania za darmo

Aspose.Imaging for Java to niesamowity interfejs API do edycji obrazów, który zapewnia szeroki zakres funkcji do manipulowania obrazami. Ponadto obsługuje różne formaty obrazów rastrowych i wektorowych. Użyjemy tego interfejsu API do przycięcia obrazów z poziomu naszej aplikacji Java. Możesz pobrać interfejs API lub zainstalować go przy użyciu następujących konfiguracji Mavena.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository> 

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-imaging</artifactId>
    <version>22.9</version>
</dependency>

Przycinaj obrazy w Javie

Istnieją dwa sposoby kadrowania obrazu rastrowego: przesunięcie wartości i prostokąt. W pierwszej metodzie musimy podać wartości przesunięcia w lewo, w prawo, górę i dół, aby wykadrować obraz. Natomiast w drugiej metodzie definiujemy prostokąt, aby przyciąć określony obszar obrazu.

Rzućmy okiem na każdą z wyżej wymienionych metod przycinania obrazów w Javie.

Przytnij obrazy z wartościami Shift w Javie

Poniżej przedstawiono kroki przycinania obrazu przy użyciu wartości przesunięcia w Javie.

Poniższy przykładowy kod pokazuje, jak przyciąć obraz w Javie.

// Załaduj obraz.
try (RasterImage rasterImage = (RasterImage) Image.load("image.jpg")) {
	// Przed kadrowaniem obraz należy zapisać w pamięci podręcznej, aby uzyskać lepszą wydajność.
	if (!rasterImage.isCached()) {
		rasterImage.cacheData();
	}

	// Zdefiniuj wartości przesunięcia dla wszystkich czterech stron.
	int leftShift = 10;
	int rightShift = 10;
	int topShift = 10;
	int bottomShift = 10;

	// Na podstawie wartości przesunięcia zastosuj kadrowanie obrazu. Metoda przycinania zostanie zmieniona
	// obraz zbliża się do środka obrazu i zapisuje wyniki na dysku.
	rasterImage.crop(leftShift, rightShift, topShift, bottomShift);

	// Zapisz przycięty obraz.
	rasterImage.save("cropped.jpg");
}

Poniżej znajduje się obraz wejściowy, którego użyliśmy do przycięcia.

przyciąć obraz w Javie

Poniżej znajduje się wynikowy przycięty obraz.

kadrowanie obrazu w Javie

Kadrowanie obrazu Java za pomocą prostokąta

Możesz także zdefiniować prostokąt, aby przyciąć żądany obszar obrazu. Poniższe kroki demonstrują kadrowanie obrazu przy użyciu prostokąta w Javie.

Poniższy przykładowy kod pokazuje, jak wykonać przycinanie obrazu za pomocą prostokąta w Javie.

// Załaduj obraz.
try (RasterImage rasterImage = (RasterImage) Image.load("image.jpg")) {
	// Przed kadrowaniem obraz należy zapisać w pamięci podręcznej, aby uzyskać lepszą wydajność.
	if (!rasterImage.isCached()) {
		rasterImage.cacheData();
	}

	// Utwórz instancję klasy Rectangle o żądanym rozmiarze.
	Rectangle rectangle = new Rectangle(20, 20, 20, 20);
	
	// Przytnij zdjęcie.
	rasterImage.crop(rectangle);

	// Zapisz przycięty obraz.
	rasterImage.save("cropped.jpg");
}

Imaging Cropping API for Java — Uzyskaj bezpłatną licencję

Możesz uzyskać bezpłatną tymczasową licencję i przycinać obrazy bez ograniczeń ewaluacyjnych.

Wniosek

W tym artykule nauczyłeś się przycinać obrazy w Javie. Pokazaliśmy kilka sposobów przycinania obrazu przy użyciu wartości przesunięcia lub prostokąta. Ponadto możesz dowiedzieć się więcej o interfejsie API przetwarzania obrazu Java, korzystając z dokumentacji. Możesz także podzielić się z nami swoimi pytaniami za pośrednictwem naszego forum.

Zobacz też