Warning: session_start(): open(/var/lib/php/sessions/sess_3psq99spt3kt67ves06af96n92, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
srecord noeq Hi15ImageStreaks(Hi15Image inputImage) {
// x values of streak ends
new IntBuffer streakData;
int[] lineStarts;
run {
var streakData = this.streakData;
int w = inputImage.w(), h = inputImage.h();
lineStarts = new int[h];
short[] pixels = inputImage.pixels;
int iPixel = 0;
for y to h: {
lineStarts[y] = streakData.size();
int lineEnd = iPixel+w;
while (iPixel < lineEnd) {
short color = pixels[iPixel];
do
++iPixel;
while (iPixel < lineEnd && pixels[iPixel] == color);
streakData.add(iPixel);
}
}
}
selfType runAndReturn() { run(); this; }
int nStreaks() { ret streakData.size(); }
int h() { ret lineStarts.length; }
ItIt streaksAsRectsIterator() {
ret iffNull(new IF0 {
int iStreak;
int x, y;
public Rect get() {
if (y >= h()) null;
if (iStreak >= nStreaks()) null;
if (y+1 < h() && iStreak >= lineStarts[y+1]) {
++y;
x = 0;
}
int x2 = streakData.get(iStreak++);
Rect r = rect(x2, y, x2-x, 1);
x = x2;
ret r;
}
});
}
}