You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by ni...@apache.org on 2006/07/14 11:18:48 UTC
svn commit: r421843 - in
/jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf:
model/Picture.java usermodel/PictureData.java usermodel/SlideShow.java
Author: nick
Date: Fri Jul 14 02:18:44 2006
New Revision: 421843
URL: http://svn.apache.org/viewvc?rev=421843&view=rev
Log:
Yegor's update from bug #39991 - better identification of what underlying picture data a picture object relates to
Modified:
jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/Picture.java
jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/PictureData.java
jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/SlideShow.java
Modified: jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/Picture.java
URL: http://svn.apache.org/viewvc/jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/Picture.java?rev=421843&r1=421842&r2=421843&view=diff
==============================================================================
--- jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/Picture.java (original)
+++ jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/Picture.java Fri Jul 14 02:18:44 2006
@@ -153,10 +153,11 @@
int idx = getPictureIndex()-1;
EscherBSERecord bse = (EscherBSERecord)lst.get(idx);
for ( int i = 0; i < pict.length; i++ ) {
- if (Arrays.equals(bse.getUid(), pict[i].getUID())){
+ if (pict[i].getOffset() == bse.getOffset()){
return pict[i];
}
}
+ System.err.println("Warning - no picture found for our BSE offset " + bse.getOffset());
return null;
}
Modified: jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/PictureData.java
URL: http://svn.apache.org/viewvc/jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/PictureData.java?rev=421843&r1=421842&r2=421843&view=diff
==============================================================================
--- jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/PictureData.java (original)
+++ jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/PictureData.java Fri Jul 14 02:18:44 2006
@@ -49,6 +49,11 @@
*/
protected byte[] header;
+ /**
+ * The offset to the picture in the stream
+ */
+ protected int offset;
+
public PictureData(){
header = new byte[PictureData.HEADER_SIZE];
}
@@ -76,6 +81,7 @@
// Save the picture data
pictdata = new byte[size];
+ this.offset = offset;
System.arraycopy(pictstream, startPos, pictdata, 0, pictdata.length);
}
@@ -162,6 +168,25 @@
public byte[] getHeader(){
return header;
}
+
+ /**
+ * File offset in the 'Pictures' stream
+ *
+ * @return offset in the 'Pictures' stream
+ */
+ public int getOffset(){
+ return offset;
+ }
+
+ /**
+ * Set offset of this picture in the 'Pictures' stream.
+ * We need to set it when a new picture is created.
+ *
+ * @param offset in the 'Pictures' stream
+ */
+ public void setOffset(int offset){
+ this.offset = offset;
+ }
/**
* Compute 16-byte checksum of this picture
Modified: jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/SlideShow.java
URL: http://svn.apache.org/viewvc/jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/SlideShow.java?rev=421843&r1=421842&r2=421843&view=diff
==============================================================================
--- jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/SlideShow.java (original)
+++ jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/SlideShow.java Fri Jul 14 02:18:44 2006
@@ -671,6 +671,7 @@
pict.setUID(uid);
pict.setData(data);
pict.setType(format);
+ pict.setOffset(offset);
_hslfSlideShow.addPicture(pict);
---------------------------------------------------------------------
To unsubscribe, e-mail: poi-dev-unsubscribe@jakarta.apache.org
Mailing List: http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta POI Project: http://jakarta.apache.org/poi/