List of usage examples for org.apache.commons.io FileUtils checksumCRC32
public static long checksumCRC32(File file) throws IOException
From source file:se.trixon.mapollage.Operation.java
private void addPhoto(File file) throws ImageProcessingException, IOException { mPhotoInfo = new PhotoInfo(file, mProfileSource.isIncludeNullCoordinate()); try {// w w w. ja v a 2 s.co m mPhotoInfo.init(); } catch (ImageProcessingException | IOException e) { if (mPhotoInfo.hasExif()) { mNumOfExif++; } throw e; } boolean hasLocation = false; if (mPhotoInfo.hasExif()) { mNumOfExif++; hasLocation = mPhotoInfo.hasGps() && !mPhotoInfo.isZeroCoordinate(); if (hasLocation) { mNumOfGps++; } } else { throw new ImageProcessingException(String.format("E010 %s", file.getAbsolutePath())); } Date exifDate = mPhotoInfo.getDate(); if (hasLocation && mProfilePath.isDrawPath()) { mLineNodes.add(new LineNode(exifDate, mPhotoInfo.getLat(), mPhotoInfo.getLon())); } if (hasLocation || mProfileSource.isIncludeNullCoordinate()) { Folder folder = getFolder(file, exifDate); String imageId = String.format("%08x", FileUtils.checksumCRC32(file)); String styleNormalId = String.format("s_%s", imageId); String styleHighlightId = String.format("s_%s_hl", imageId); String styleMapId = String.format("m_%s", imageId); Style normalStyle = mDocument.createAndAddStyle().withId(styleNormalId); IconStyle normalIconStyle = normalStyle.createAndSetIconStyle().withScale(1.0); Style highlightStyle = mDocument.createAndAddStyle().withBalloonStyle(mBalloonStyle) .withId(styleHighlightId); IconStyle highlightIconStyle = highlightStyle.createAndSetIconStyle().withScale(1.1); if (mProfilePlacemark.isSymbolAsPhoto()) { Icon icon = KmlFactory.createIcon() .withHref(String.format("%s/%s.jpg", mThumbsDir.getName(), imageId)); normalIconStyle.setIcon(icon); normalIconStyle.setScale(mProfilePlacemark.getScale()); double highlightZoom = mProfilePlacemark.getZoom() * mProfilePlacemark.getScale(); highlightIconStyle.setIcon(icon); highlightIconStyle.setScale(highlightZoom); } if (isUsingThumbnails()) { File thumbFile = new File(mThumbsDir, imageId + ".jpg"); mFileThumbMap.put(file, thumbFile); if (Files.isWritable(thumbFile.getParentFile().toPath())) { mPhotoInfo.createThumbnail(thumbFile); } else { mListener.onOperationLog(String.format(mBundle.getString("insufficient_privileges"), mDestinationFile.getAbsolutePath())); Thread.currentThread().interrupt(); return; } } mDocument.createAndAddStyleMap().withId(styleMapId) .addToPair(KmlFactory.createPair().withKey(StyleState.NORMAL).withStyleUrl("#" + styleNormalId)) .addToPair(KmlFactory.createPair().withKey(StyleState.HIGHLIGHT) .withStyleUrl("#" + styleHighlightId)); Placemark placemark = KmlFactory.createPlacemark() .withName(getSafeXmlString(getPlacemarkName(file, exifDate))).withOpen(Boolean.TRUE) .withStyleUrl("#" + styleMapId); String desc = getPlacemarkDescription(file, mPhotoInfo, exifDate); if (!StringUtils.isBlank(desc)) { placemark.setDescription(desc); } placemark.createAndSetPoint().addToCoordinates(mPhotoInfo.getLon(), mPhotoInfo.getLat(), 0F); if (mProfilePlacemark.isTimestamp()) { TimeStamp timeStamp = KmlFactory.createTimeStamp(); timeStamp.setWhen(mTimeStampDateFormat.format(exifDate)); placemark.setTimePrimitive(timeStamp); } folder.addToFeature(placemark); mNumOfPlacemarks++; } mListener.onOperationLog(file.getAbsolutePath()); }