85 COLORMODELUNKNOWN = 0,
101 static FORMAT fileFormat(
const QString& filePath);
103 static QString formatToMimeType(FORMAT frm);
138 explicit DImg(
const QImage& image);
147 DImg(uint width, uint height,
bool sixteenBit,
bool alpha =
false, uchar*
const data =
nullptr,
bool copyData =
true);
179 void putImageData(uint width, uint height,
bool sixteenBit,
bool alpha, uchar*
const data,
bool copyData =
true);
188 void putImageData(uchar*
const data,
bool copyData =
true);
198 void resetMetaData();
204 uchar* stripImageData();
209 bool load(
const QString& filePath,
210 bool loadMetadata,
bool loadICCData,
bool loadUniqueHash,
bool loadHistory,
217 bool save(
const QString& filePath, FORMAT frm,
DImgLoaderObserver*
const observer =
nullptr);
218 bool save(
const QString& filePath,
const QString& format,
DImgLoaderObserver*
const observer =
nullptr);
227 void imageSavedAs(
const QString& savePath);
234 bool loadItemInfo(
const QString& filePath,
bool loadMetadata =
true,
235 bool loadICCData =
true,
bool loadUniqueHash =
true,
236 bool loadImageHistory =
true);
242 uchar* copyBits()
const;
244 uchar* scanLine(uint i)
const;
245 bool hasAlpha()
const;
247 quint64 numBytes()
const;
248 quint64 numPixels()
const;
253 int bytesDepth()
const;
258 int bitsDepth()
const;
264 QString originalFilePath()
const;
271 QString lastSavedFilePath()
const;
282 int originalBitDepth()
const;
287 QSize originalSize()
const;
293 QSize originalRatioSize()
const;
304 FORMAT detectedFormat()
const;
312 QString format()
const;
321 QString savedFormat()
const;
335 DColor getPixelColor(uint x, uint y)
const;
336 void setPixelColor(uint x, uint y,
const DColor& color);
337 void prepareSubPixelAccess();
338 DColor getSubPixelColor(
float x,
float y)
const;
339 DColor getSubPixelColorFast(
float x,
float y)
const;
347 bool hasTransparentPixels()
const;
355 bool isReadOnly()
const;
363 void setIccProfile(
const IccProfile& profile);
365 void setAttribute(
const QString& key,
const QVariant&
value);
366 QVariant attribute(
const QString& key)
const;
367 bool hasAttribute(
const QString& key)
const;
368 void removeAttribute(
const QString& key);
370 void setEmbeddedText(
const QString& key,
const QString& text);
376 bool hasImageHistory()
const;
388 void setHistoryBranchAfter(
const DImageHistory& historyBeforeBranch,
bool isBranch =
true);
389 void setHistoryBranchForLastSteps(
int numberOfLastHistorySteps,
bool isBranch =
true);
390 void setHistoryBranch(
bool isBranch =
true);
411 RemoveOldMetadataPreviews = 1 << 0,
415 CreateNewMetadataPreview = 1 << 1,
420 ResetExifOrientationTag = 1 << 2,
425 CreateNewImageHistoryUUID = 1 << 3,
427 PrepareMetadataFlagsAll = RemoveOldMetadataPreviews |
428 CreateNewMetadataPreview |
429 ResetExifOrientationTag |
430 CreateNewImageHistoryUUID
432 Q_DECLARE_FLAGS(PrepareMetadataFlags, PrepareMetadataFlag)
434 void prepareMetadataToSave(
const QString& intendedDestPath,
435 const QString& destMimeType,
436 const QString& originalFileName = QString(),
437 PrepareMetadataFlags flags = PrepareMetadataFlagsAll);
443 void prepareMetadataToSave(
const QString& intendedDestPath,
444 const QString& destMimeType,
445 bool resetExifOrientationTag);
466 void insertAsReferredImage(
int afterHistoryStep,
const HistoryImageId& otherImagesId);
473 void addCurrentUniqueImageId(
const QString& uuid);
479 int exifOrientation(
const QString& filePath);
498 QVariant fileOriginData()
const;
499 void setFileOriginData(
const QVariant& data);
500 QVariant lastSavedFileOriginData()
const;
501 void switchOriginToLastSaved();
511 DImg copyImageData()
const;
519 DImg copyMetaData()
const;
524 DImg copy(
const QRect& rect)
const;
525 DImg copy(
const QRectF& relativeRect)
const;
526 DImg copy(
int x,
int y,
int w,
int h)
const;
537 void bitBltImage(
const DImg*
const src,
int dx,
int dy);
538 void bitBltImage(
const DImg*
const src,
int sx,
int sy,
int dx,
int dy);
539 void bitBltImage(
const DImg*
const src,
int sx,
int sy,
int w,
int h,
int dx,
int dy);
540 void bitBltImage(
const uchar*
const src,
int sx,
int sy,
int w,
int h,
int dx,
int dy,
541 uint swidth, uint sheight,
int sdepth);
549 int sx,
int sy,
int w,
int h,
int dx,
int dy,
551 DColorComposer::NoMultiplication);
559 int x,
int y,
int w,
int h,
561 DColorComposer::NoMultiplication);
562 void bitBlendImageOnColor(
const DColor& color,
int x,
int y,
int w,
int h);
563 void bitBlendImageOnColor(
const DColor& color);
568 QImage copyQImage()
const;
569 QImage copyQImage32()
const;
570 QImage copyQImage(
const QRect& rect)
const;
571 QImage copyQImage(
const QRectF& relativeRect)
const;
572 QImage copyQImage(
int x,
int y,
int w,
int h)
const;
577 void crop(
const QRect& rect);
578 void crop(
int x,
int y,
int w,
int h);
583 void resize(
int w,
int h);
592 void removeAlphaChannel(
const DColor& destColor);
593 void removeAlphaChannel();
599 DImg smoothScale(
int width,
int height, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio)
const;
600 DImg smoothScale(
const QSize& destSize, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio)
const;
611 DImg smoothScaleClipped(
int width,
int height,
int clipx,
int clipy,
612 int clipwidth,
int clipheight,
bool smooth =
true)
const;
613 DImg smoothScaleClipped(
const QSize& destSize,
const QRect& clip,
bool smooth =
true)
const;
619 DImg smoothScaleSection(
int sx,
int sy,
int sw,
int sh,
int dw,
int dh)
const;
620 DImg smoothScaleSection(
const QRect& sourceRect,
const QSize& destSize)
const;
622 void rotate(ANGLE angle);
623 void flip(FLIP direction);
631 bool rotateAndFlip(
int orientation);
636 bool reverseRotateAndFlip(
int orientation);
645 bool wasExifRotated();
646 bool exifRotate(
const QString& filePath);
651 bool reverseExifRotate(
const QString& filePath);
656 int orientation()
const;
662 bool transform(
int transformAction);
664 QPixmap convertToPixmap()
const;
665 QPixmap convertToPixmap(
IccTransform& monitorICCtrans)
const;
678 void convertDepth(
int depth);
683 void convertToSixteenBit();
684 void convertToEightBit();
685 void convertToDepthOfImage(
const DImg*
const otherImage);
691 void fill(
const DColor& color);
711 QByteArray getUniqueHash();
712 static QByteArray getUniqueHash(
const QString& filePath);
733 QByteArray getUniqueHashVersion(
int version);
734 static QByteArray getUniqueHashVersion(
const QString& filePath,
int version);
744 QByteArray createImageUniqueId();
749 static QString colorModelToString(COLORMODEL colorModel);
754 static bool isAnimatedImage(
const QString& filePath);
758 DImg(
const DImg& image, uint w, uint h);
760 void copyMetaData(
const QExplicitlySharedDataPointer<Private>& src);
761 void copyImageData(
const QExplicitlySharedDataPointer<Private>& src);
762 void setImageData(
bool null, uint width, uint height,
bool sixteenBit,
bool alpha);
763 void setImageDimension(uint width, uint height);
764 size_t allocateData()
const;
766 bool clipped(
int& x,
int& y,
int& w,
int& h, uint width, uint height)
const;
768 QDateTime creationDateFromFilesystem(
const QFileInfo& fileInfo)
const;
770 static QByteArray createUniqueHash(
const QString& filePath,
const QByteArray& ba);
771 static QByteArray createUniqueHashV2(
const QString& filePath);
772 static QByteArray createUniqueHashV3(
const QString& filePath);
774 void bitBlt(
const uchar*
const src, uchar*
const dest,
775 int sx,
int sy,
int w,
int h,
int dx,
int dy,
776 uint swidth, uint sheight, uint dwidth, uint dheight,
777 bool sixteenBit,
int sdepth,
int ddepth);
778 void bitBlend(
DColorComposer*
const composer, uchar*
const src, uchar*
const dest,
779 int sx,
int sy,
int w,
int h,
int dx,
int dy,
780 uint swidth, uint sheight, uint dwidth, uint dheight,
781 bool sixteenBit,
int sdepth,
int ddepth,
784 uchar* data,
int x,
int y,
int w,
int h,
785 uint width, uint height,
bool sixteenBit,
int depth,
787 bool normalizeRegionArguments(
int& sx,
int& sy,
int& w,
int& h,
int& dx,
int& dy,
788 uint swidth, uint sheight, uint dwidth, uint dheight)
const;
792 QExplicitlySharedDataPointer<Private> m_priv;
Definition dimagehistory.h:39
Definition historyimageid.h:32
Type
Definition historyimageid.h:36