From 03871a2a510d625cf10dec60a304ff4c2f3ca8f2 Mon Sep 17 00:00:00 2001 From: landaiqing <3517283258@qq.com> Date: Thu, 6 Jun 2024 17:34:18 +0800 Subject: [PATCH] feat: update --- .../ReactRotateCaptchaController.java | 15 +- .../src/main/resources/image/13000.png | Bin 53258 -> 0 bytes .../src/main/resources/image/test1.jpg | Bin 21846 -> 0 bytes .../image/{cropped_image.png => test2.png} | Bin .../auth/common/utils/RotateImageUtils.java | 169 ++++++++---------- 5 files changed, 83 insertions(+), 101 deletions(-) delete mode 100644 schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/resources/image/13000.png delete mode 100644 schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/resources/image/test1.jpg rename schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/resources/image/{cropped_image.png => test2.png} (100%) diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/ReactRotateCaptchaController.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/ReactRotateCaptchaController.java index 21e4d26..6d237aa 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/ReactRotateCaptchaController.java +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/ReactRotateCaptchaController.java @@ -6,15 +6,11 @@ import com.schisandra.auth.common.entity.CaptchaResult; import com.schisandra.auth.common.redis.RedisUtil; import com.schisandra.auth.common.utils.RotateImageUtils; import lombok.extern.slf4j.Slf4j; -import net.coobird.thumbnailator.Thumbnailator; -import net.coobird.thumbnailator.Thumbnails; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.imageio.ImageIO; -import java.awt.*; import java.awt.image.BufferedImage; -import java.io.IOException; import java.io.InputStream; import java.security.SecureRandom; import java.util.HashMap; @@ -42,19 +38,20 @@ public class ReactRotateCaptchaController { */ @GetMapping("get") public CaptchaResult get() throws Exception { - RotateImageUtils rotateImageUtils = new RotateImageUtils(); CompletableFuture futurePrice = CompletableFuture.supplyAsync(() -> { HashMap map = new HashMap<>(); try { SecureRandom random = new SecureRandom(); double randomNumber = random.nextInt(280) + 40; - InputStream inputStream = ReactRotateCaptchaController.class.getClassLoader().getResourceAsStream("image/cropped_image.png"); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("image/test2.png"); + assert inputStream != null; BufferedImage image = ImageIO.read(inputStream); String token = UUID.randomUUID().toString(); String prefix = redisUtil.buildKey(authRotateCaptchaPrefix, token); - redisUtil.setNx(prefix, String.valueOf(randomNumber), 60L, TimeUnit.SECONDS); - BufferedImage image1 = rotateImageUtils.rotateImage(image, randomNumber); - String img = RotateImageUtils.BufferedImageToBase64(image1); + redisUtil.setNx(prefix, String.valueOf(randomNumber), 30L, TimeUnit.SECONDS); + BufferedImage bufferedImage = RotateImageUtils.rotateImage(image, randomNumber); + BufferedImage newImage = RotateImageUtils.writeCyclePic(bufferedImage); + String img = RotateImageUtils.bufferedImageToBase64(newImage); map.put("token", token); map.put("str", img); } catch (Exception e) { diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/resources/image/13000.png b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/resources/image/13000.png deleted file mode 100644 index f019f5cbbacbefeb6eba06dc9a78a3faefdcd2b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53258 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 z 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 diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/resources/image/test1.jpg b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/resources/image/test1.jpg deleted file mode 100644 index a4498f7fda29e214f0281a5aacb98cc71e9079cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21846 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 z zJryV4P9~UF=bHfh>0r-fAMj!jLL>!9m;=>LCi#3wwWC_^qy0t5n8O^teTIpLy16xyoDlUY^OoBJ6U279l_zaA@^NQeW#&*ph7v#nB0+4;=73)0!;4jnPzp?^*S zU})5mlNGNAff#Uc?7|~Zh-oSX-CM0l0|A62&%u^i`+;2B8S}_l#&BP!nS7~nYZqu} z!*)ji@9}*S)qu^*!1p>p_pfi3>4)bq%KQ>OI6_0%yyna2>s8sl!t)4t_g^OS99kOQ zVjZVsoHEJYgXc{wGlb1C>c*=QMo-94(3jj&cbPlu?O!Lt!eMX<9*R6PPgMIy1GEoH z*RQw-lAA6nIzC^*+nX)5T}HqIIXE7JVKaLF&~W!-8h_I3pZ^Z)vAXo`=#9ZSM{*e} zz@BV-S~2jg*KlXqS|q)QYVvd3V2hE{gL?bVvq1^r3ApI)A>}+Osj+p~xeT?`&aq}z%B(;!*zweF10?|IK0x#6mFN{a z#jk0kkx2zVkdKXkZ1l61Hre{fH&pyUky+>Fx1lYwO$T+nc@LO@h}Ysf^#4P0%6207 zebIHtb*de5Pxqcowh(AB8@Fe`U+2Z(gcp!tf#IO?~E|DfNp6CBOv-~4~vLC|1+#D#aQk4C(BZWn_ zj^Z+W6X=d3O2#K=scmJN)87>e91TUYQsxO0tIaM1eST3=rp5OBDC=cN)_$5^V&C+z z-@7_1Dld0DV`R#b{e2&x?CVA4xWBkd=yPeO)8+Z(rJ0?jY@1tQtAX-;v$MfEem z_6GLea0y=jFk=6{&_r9? 0) { + angle1 = Math.acos(x / radius); + } else { + angle1 = 2 * Math.PI - Math.acos(x / radius); + } + x = (int) Math.round(radius * Math.cos(angle1 - angle)); + y = (int) Math.round(radius * Math.sin(angle1 - angle)); + if (x < (width / 2) & x > -(width / 2) & y < (height / 2) & y > -(height / 2)) { + int rgb = image.getRGB((int) Math.round(x + width / 2), (int) Math.round(height / 2 - y)); + resultImage.setRGB(i, j, rgb); + } else { + resultImage.setRGB(i, j, -1); + } + } + } + return resultImage; } // 获取四个角点旋转后Y方向坐标 - private double[] getY(int i, int j, double angle) { + private static double[] getY(int i, int j, double angle) { double results[] = new double[4]; double radius = Math.sqrt(i * i + j * j); double angle1 = Math.asin(j / radius); @@ -116,7 +103,7 @@ public class RotateImageUtils { } // 获取四个角点旋转后X方向坐标 - private double[] getX(int i, int j, double angle) { + private static double[] getX(int i, int j, double angle) { double results[] = new double[4]; double radius = Math.sqrt(i * i + j * j); double angle1 = Math.acos(i / radius); @@ -135,17 +122,17 @@ public class RotateImageUtils { * @author zlg * @date: 2024/5/9 13:14 */ - public BufferedImage writeCyclePic(BufferedImage image) { - BufferedImage newImage = new BufferedImage(350, 350, BufferedImage.TYPE_INT_BGR); + public static BufferedImage writeCyclePic(BufferedImage image) { + BufferedImage newImage = new BufferedImage(800, 800, BufferedImage.TYPE_INT_BGR); try { int width = image.getWidth(); int heigth = image.getHeight(); double x0 = width / 2; double y0 = heigth / 2; - int woffset = (width - 350) / 2; - int hoffset = (heigth - 350) / 2; - for (int i = woffset; i < 350 + woffset; i++) { - for (int j = hoffset; j < 350 + hoffset; j++) { + int woffset = (width - 800) / 2; + int hoffset = (heigth - 800) / 2; + for (int i = woffset; i < 800 + woffset; i++) { + for (int j = hoffset; j < 800 + hoffset; j++) { double r = Math.sqrt(Math.pow(Math.abs(i - x0), 2.0) + Math.pow(Math.abs(j - y0), 2.0)); if (r > (x0 - woffset)) { newImage.setRGB(i - woffset, j - hoffset, -1); @@ -163,6 +150,4 @@ public class RotateImageUtils { } - - }