곱셈 효과는 우리가 포토샵에서 흔히 볼 수 있는 효과입니다. 다음 글에서는 자바를 사용하여 곱셈의 효과를 얻는 방법을 주로 소개합니다. 이 글에서는 자세한 내용을 제공합니다. 샘플 코드는 모두가 참고할 수 있는 것입니다. 공부가 필요한 친구들은 아래의 자세한 소개를 참고해 보세요.
머리말
이 글에서는 주로 Java를 사용하여 곱셈 효과를 얻는 방법을 소개하고 참고 및 학습을 위해 공유합니다. 아래에서는 자세히 설명하지 않겠습니다. 자세한 소개를 살펴보겠습니다. .
Multiply는 Photoshop의 혼합 모드입니다. 간단히 말해서 두 레이어의 내용을 혼합할 수 있습니다.
PS의 최고의 시연 사용 사례
융합의 계산 공식은 실제로 A*B/255로 매우 간단합니다. (A와 B는 레이어 A와 레이어 B를 의미합니다)
추가 설명은 다음과 같습니다.
레이어 A의 빨간색 채널과 레이어 B의 빨간색 채널에 해당하는 각 픽셀의 회색조 값을 곱하고 255로 나눈 값입니다. 새로운 빨간색 채널을 얻으세요. 파란색과 녹색 채널도 마찬가지입니다.
구현 방법
특정 채널의 픽셀 회색조 값은 실제로 해당 RGB 값으로 직접 대체될 수 있습니다. 이 과정을 설명하려면 다음 코드를 사용하세요.
먼저 나중에 사용할 픽셀을 기준으로 해당 RGB 배열을 얻는 방법을 캡슐화합니다.
public static int[] getRGB(int pixel) { int r = (pixel >> 16) & 0xff; int g = (pixel >> 8) & 0xff; int b = pixel & 0xff; return new int[]{r, g, b}; }
그런 다음 이미지 픽셀을 순회하고 순회 프로세스 지점을 생략하고 바로 처리 단계로 들어갑니다
// 先获取两个图层同一位置的像素值 int pixelA = imgA.getRGB(x, y); int pixelB = imgB.getRGB(x, y); // 获取两组RGB数组 int[] rgb1 = getRGB(pixelA); int[] rgb2 = getRGB(pixelB); // 根据公式分别计算新的RGB值 int r = rgb1[0] * rgb2[0] / 255; int g = rgb1[1] * rgb2[1] / 255; int b = rgb1[2] * rgb2[2] / 255; // 获得正片叠底后的像素值 int pixelNew = new Color(r, g, b).getRGB();
새 픽셀을 직접 가져오기 새 사진으로 설정하기만 하면 됩니다.
이 메소드는 제가 캡슐화하여 Nutz의 도구 모음 이미지(로컬 다운로드)에 배치했습니다. 다음은 직접 수정하고 사용할 수 있는 Nutz 호출 예제입니다.
예를 들어 진 장군에게 태양을 추가해보자:
진 장군
Big Sun
// 先获取两张图片 BufferedImage imgA = Images.read(new File("金将军.jpg")); BufferedImage imgB = Images.read(new File("大太阳.jpg")); // 正片叠底 BufferedImage imgMultiply = Images.multiply(imgA, imgB, 0, 0); // 输出到文件 Images.write(imgMultiply, new File("大太阳金将军.jpg"));
출력 결과 사진:
큰 태양 진, 하하 , 하지만 이 태양 선택이 좀 횡포하진 않네요
물론 이 코드는 사실 한줄로 작성해도 됩니다
Images.write(Images.multiply(Images.read(new File("金将军.jpg")), Images.read(new File("大太阳.jpg")), 0, 0), new File("大太阳金将军.jpg"));
아주 간단하지 않나요^_^
기본적인 이미지 처리
더 보기 고급 방법
요약
위 내용은 Java 이미지 처리 곱셈 효과를 위한 구현 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!