ImageSize imageSize = ImageSize.fromSize(size); File avatarFile = getAvatarFile(avatar, imageSize.getFilenameFlag()); if (avatarFile.exists()) availableSize = imageSize; if (null != availableSize && availableSize.getPixels() > sizeToGet.getPixels())
AvatarManager.ImageSize size = AvatarManager.ImageSize.fromString(request.getParameter(PARAM_SIZE)); RenderedImage image = scaler.getSelectedImageData(ImageIO.read(new FileInputStream(temporaryAvatar.getFile())), temporaryAvatar.getSelection(), size.getPixels()); ImageIO.write(image, AvatarManager.AVATAR_IMAGE_FORMAT_FULL.getName(), out);
int maxOffset = MAX_SIDE_LENGTH - AvatarManager.ImageSize.LARGE.getPixels(); if (selection.getTopLeftX() < 0 || selection.getTopLeftY() < 0 || selection.getTopLeftX() > maxOffset || selection.getTopLeftY() > maxOffset)
ByteArrayInputStream bais = new ByteArrayInputStream(decoded); final Avatar toCreate = AvatarImpl.createCustomAvatar(AVATAR_DEFAULT_BASE_FILENAME, contentType, project); Avatar createdAvatar = avatarManager.create(toCreate, bais, AvatarManager.ImageSize.LARGE.getOriginSelection()); IOUtil.shutdownStream(bais); final Long avatarId = createdAvatar.getId();
final AvatarManager.ImageSize imageSize = AvatarManager.ImageSize.fromSize(size); File file = createAvatarFile(avatar, imageSize.getFilenameFlag()); createFiles.add(file);
for (ImageSize value : values()) if( (size > 0 && size == value.getPixels()) || StringUtils.startsWithIgnoreCase(value.name(), text) || StringUtils.startsWithIgnoreCase(value.getFilenameFlag(), text)) return defaultSize();
@Override public String tagAvatar(final long id, final String filename) throws IOException { final File base = getAvatarBaseDirectory(); for (AvatarManager.ImageSize size : AvatarManager.ImageSize.values()) { final String sizeFlag = size.getFilenameFlag(); final File avatarFileInstance = new File(base, id + "_" + sizeFlag + filename); if (avatarFileInstance.exists()) { tagSingleAvatarFile(avatarFileInstance, new File(toTaggedName(avatarFileInstance.getAbsolutePath()))); } } // Don't delete the old files until we're done, in case we can't tag all versions of the files try { for (AvatarManager.ImageSize size : AvatarManager.ImageSize.values()) { final String sizeFlag = size.getFilenameFlag(); final File oldAvatarFile = new File(base, id + "_" + sizeFlag + filename); if (oldAvatarFile.exists()) { oldAvatarFile.delete(); } } } catch (SecurityException ignored) { } return toTaggedName(filename); }
private void setCroppingCoordinates(final int width, final int height) final int baseSize = AvatarManager.ImageSize.LARGE.getPixels();
public boolean delete(Long avatarId, boolean alsoDeleteAvatarFile) { Assertions.notNull("avatarId", avatarId); final Avatar avatar = store.getById(avatarId); if (avatar == null) { return false; } if (alsoDeleteAvatarFile) { final ImageSize[] imageSizes = ImageSize.values(); final File[] avatarFiles = new File[imageSizes.length]; for (int i = 0; i < imageSizes.length; i++) { avatarFiles[i] = getAvatarFile(avatar, imageSizes[i].getFilenameFlag()); deleteFile(avatarFiles[i]); } eventPublisher.publish(new JiraHomeChangeEvent(JiraHomeChangeEvent.Action.FILE_DELETED, JiraHomeChangeEvent.FileType.AVATAR, avatarFiles)); } return store.delete(avatarId); }
@Override protected void doGet(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException { try { String ownerId = getOwnerId(request); Long avatarId = getAvatarId(request); AvatarManager.ImageSize size = AvatarManager.ImageSize.fromString(request.getParameter(PARAM_SIZE)); // do the default GET. subclasses may override this defaultDoGet(request, response, ownerId, avatarId, size); } catch (NumberFormatException e) { // avatarId was requested but it wasn't an avatarId response.sendError(HttpServletResponse.SC_NOT_FOUND); } }
private File getOrGenerateAvatarFile(final Avatar avatar, final ImageSize size) throws IOException { final File file = getAvatarFile(avatar, size.getFilenameFlag()); //if this file doesn't exist and we requested something other than the largest size lets //try to generate a smaller image. if (!file.exists()) { File largeFile = getOrGenerateLargerAvatarFile(avatar, size); //generate a smaller image file for the avatar requested and return that! if (largeFile != null && largeFile.exists()) { return processImage(avatar, FileUtils.openInputStream(largeFile), null, size); } } return file; }
private void redirectToExternalAvatar(HttpServletResponse response, String ownerId, AvatarManager.ImageSize size) throws IOException { AvatarService avatarService = ComponentAccessor.getAvatarService(); if (!getAvatarManager().hasPermissionToView(getAuthenticationContext().getUser(), getUserUtil().getUserByKey(ownerId))) { response.sendError(HttpServletResponse.SC_NOT_FOUND); return; } ApplicationUser loggedInUser = getAuthenticationContext().getUser(); URI gravatarURL = avatarService.getAvatarURL(loggedInUser, getUserUtil().getUserByKey(ownerId), size.getSize()); response.sendRedirect(gravatarURL.toString()); }
private boolean isCroppingNeeded(final Image image) { return !(image.getWidth(null) <= AvatarManager.ImageSize.LARGE.getPixels() && image.getHeight(null) == image.getWidth(null)); }
public void sendAvatar(final Avatar avatar, final Avatar.Size size, final HttpServletResponse response) throws IOException { response.setContentType(avatar.getContentType()); HttpResponseHeaders.cachePrivatelyForAboutOneYear(response); final OutputStream out = response.getOutputStream(); StreamCopyingConsumer streamCopier = new StreamCopyingConsumer(out, AVATAR_BUFFER_SIZE); final AvatarManager.ImageSize avatarSize = AvatarManager.ImageSize.fromSize(size); avatarManager.readAvatarData(avatar, avatarSize, streamCopier); } }
File processImage(final Avatar created, final InputStream imageData, final Selection croppingSelection, final ImageSize size) throws IOException { RenderedImage image = scaler.getSelectedImageData(new Thumber().getImage(imageData), croppingSelection, size.getPixels()); File file = createAvatarFile(created, size.getFilenameFlag()); avatarTagger.saveTaggedAvatar(image, AVATAR_IMAGE_FORMAT_FULL.getName(), file); eventPublisher.publish(new JiraHomeChangeEvent(JiraHomeChangeEvent.Action.FILE_ADD, JiraHomeChangeEvent.FileType.AVATAR, file)); return file; }
private String getAvatarPath(final Avatar avatar, final ImageSize size) { if (hasVectorIcon(avatar)) { return AVATAR_CLASSPATH_PREFIX + avatar.getFileName(); } else { return AVATAR_CLASSPATH_PREFIX + size.getFilenameFlag() + avatar.getFileName(); } }