000
16.07.2004, 15:51 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft... (Operator)
|
Hoi hab mir diese funktion geschrieben... erste Frage) wie findet ihr den ansatz wie kann mans besser machen? zweite Frage) sieht noch jemand nen fehlerchen?von der ganzen indexerei glüht mir die birne
C++: |
//vergrössert einen Ausschnitt ab Punkt(xstart,ystart) von Bild (picture,qb,zb) um (x_verg,y_verg) auf ein gezoomtes Bild(zoomedPicture) der Groesse (zb,zh). int zoomPicture(unsigned char *picture, unsigned char *zoomedPicture, int qb, int qh, int x_verg, int y_verg, int xstart,int ystart,int zb, int zh){ int i,j,k,l;
int xlength, ylength; int dxlength, dylength;
if(zb>(qb-xstart)*x_verg||zh>(qh-ystart)*y_verg)return 0;
xlength=zb/x_verg; ylength=zh/y_verg;
for(j=ystart;j<ystart+ylength;j++){ for(i=xstart;i<xstart+xlength;i++){ //vollständige Pixel zeichnen for(l=(j-ystart)*y_verg;l<(j-ystart+1)*y_verg;l++){ for(k=(i-xstart)*x_verg;k<(i-xstart+1)*x_verg;k++){ zoomedPicture[k+l*zb]=picture[i+j*qb]; } } }
//in x-Richtung-unvollständige Pixel zeichnen(rechter Rand) for(l=(j-ystart)*y_verg;l<(j-ystart+1)*y_verg;l++){ for(k=xlength*x_verg;k<zb;k++){ zoomedPicture[k+l*zb]=picture[i+j*qb]; } } }
//in y-Richtung-unvollständige Pixel zeichen(unterer Rand) for(i=xstart;i<xstart+xlength;i++){
for(l=ylength*y_verg;l<zh;l++){ for(k=(i-xstart)*x_verg;k<(i-xstart+1)*x_verg;k++){ zoomedPicture[k+l*zb]=picture[i+j*qb]; } } }
//in xy-Richtung unvollständiges Pixel zeichnen(letztes Pixel rechts unten) for(l=ylength*y_verg;l<zh;l++){ for(k=xlength*x_verg;k<zb;k++){ zoomedPicture[k+l*zb]=picture[i+j*qb]; } }
return 1; }
|
-- ...fleißig wie zwei Weißbrote Dieser Post wurde am 16.07.2004 um 15:52 Uhr von Windalf editiert. |