[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    extragear/graphics/gwenview
From:       Aurélien Gâteau <aurelien.gateau () free ! fr>
Date:       2005-08-18 15:14:10
Message-ID: 1124378050.318531.21910.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 450583 by gateau:

Do not add a dummy character at the end of JPEG comments.


 M  +1 -0      NEWS  
 M  +7 -38     imageutils/jpegcontent.cpp  
 M  +2 -2      imageutils/testjpegcontent.cpp  


--- trunk/extragear/graphics/gwenview/NEWS #450582:450583
@@ -24,6 +24,7 @@
    the current image.
  - The destination URL is now set to the current URL in KIPI plugins.
  - Use the folder name as an album name for KIPI plugins.
+ - Do not add a dummy character at the end of JPEG comments.
  
 2005.07.17 - v1.2.91
 - New features:
--- trunk/extragear/graphics/gwenview/imageutils/jpegcontent.cpp #450582:450583
@@ -322,37 +322,6 @@
 }
 
 
-// This code is inspired by jpegtools.c from fbida
-static void doSetComment(struct jpeg_decompress_struct *src, const QString& comment) {
-	jpeg_saved_marker_ptr mark;
-	int size;
-
-	/* find or create comment marker */
-	for (mark = src->marker_list;; mark = mark->next) {
-		if (mark->marker == JPEG_COM)
-			break;
-		if (NULL == mark->next) {
-			mark->next = (jpeg_marker_struct*)
-				src->mem->alloc_large((j_common_ptr)src,JPOOL_IMAGE,
-							   sizeof(*mark));
-			mark = mark->next;
-			memset(mark,0,sizeof(*mark));
-			mark->marker = JPEG_COM;
-			break;
-		}
-	}
-
-	/* update comment marker */
-	QCString utf8=comment.utf8();
-	size = utf8.length() +1;
-	mark->data = (JOCTET*)
-		src->mem->alloc_large((j_common_ptr)src,JPOOL_IMAGE,size);
-	mark->original_length = size;
-	mark->data_length = size;
-	memcpy(mark->data, utf8, size);
-}
-
-
 void JPEGContent::transform(Orientation orientation, bool setComment, const QString& comment) {
 	QMap<Orientation,JXFORM_CODE> orientation2jxform;
 	orientation2jxform[NOT_AVAILABLE]= JXFORM_NONE;
@@ -405,12 +374,6 @@
 	// Read file header
 	(void) jpeg_read_header(&srcinfo, TRUE);
 
-	// Set comment
-	if (setComment) {
-		doSetComment(&srcinfo, comment);
-		d->mComment=comment;
-	}
-
 	// Init transformation
 	jpeg_transform_info transformoption;
 	transformoption.transform = orientation2jxform[orientation];
@@ -438,7 +401,13 @@
 
 	/* Start compressor (note no image data is actually written here) */
 	jpeg_write_coefficients(&dstinfo, dst_coef_arrays);
-
+	
+	if (setComment) {
+		QCString utf8=comment.utf8();
+		const char* data=utf8;
+		jpeg_write_marker(&dstinfo, JPEG_COM, (const JOCTET*)(data), utf8.length());
+	}
+	
 	/* Copy to the output file any extra markers that we want to preserve */
 	jcopy_markers_execute(&srcinfo, &dstinfo, JCOPYOPT_ALL);
 
--- trunk/extragear/graphics/gwenview/imageutils/testjpegcontent.cpp #450582:450583
@@ -39,10 +39,10 @@
 const int ORIENT6_WIDTH=128;  // This size is the size *after* orientation
 const int ORIENT6_HEIGHT=256; // has been applied
 const char* CUT_FILE="cut.jpg";
-const char* ORIENT6_COMMENT="a comment";
+const QString ORIENT6_COMMENT="a comment";
 const char* ORIENT1_FILE="test_orient1.jpg";
 const char* ORIENT1_VFLIP_FILE="test_orient1_vflip.jpg";
-const char* ORIENT1_VFLIP_COMMENT="vflip!";
+const QString ORIENT1_VFLIP_COMMENT="vflip!";
 const char* THUMBNAIL_FILE="test_thumbnail.jpg";
 
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic