1. Java / Говнокод #657

    +154

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    package com.photoholding.processimage.eugene;
    
    import java.awt.Point;
    import java.awt.Rectangle;
    
    import magick.ImageInfo;
    import magick.MagickException;
    import magick.MagickImage;
    
    public class ProcessA {
    	private MagickImage img;
    	private String text;
    	private String imageOrigin;
    	private String fout;
    	private String fmount;
    	private final String tmpImg = "tmpIM.jpg";
    	private final String tmpMnt = "tmpMounted.jpg";
        private final int width = 1607;
        private final int height = 1205;
    	
    	public ProcessA( String txt, String fin, String fout, String fmount ){
    		if( txt.length() > 52 ){
    			System.out.println( "error: text string more than 52" );
    			System.exit(0);
    		}			
    		this.text = txt;
    		this.img = getImage( fin );
    		this.imageOrigin = fin;
    		this.fmount = fmount;
    		this.fout = fout;
    	}
    
    	private MagickImage getImage( String fin2 ) {
    		MagickImage im = null;
    		try {	
    		     im = new MagickImage( new ImageInfo( fin2 ) );
    		} catch ( MagickException  e ) {
    			e.printStackTrace();
    			return null;
    		}
    		return im;
    	}
    	
    	public boolean doProcess(){
    		try {
    			scaleGenerally();
    			annotateMounted();
    			montage();
    		} catch ( Exception e ) {
    			e.printStackTrace();
    			return false;
    		}		
    		return true;
    	}
    	
        private void montage() throws Exception {
        	MagickProcessing mp = new MagickProcessing();
        	mp.montage( tmpMnt, tmpImg, fout );		
    	}
    
    	private void annotateMounted() throws Exception {
        	MagickProcessing mp = new MagickProcessing();
        	mp.annotateImage(  text, new Point( 115, 1195 - ( 598 - ( ( text.length() /  2 ) * 23  ) ) ), fmount, tmpMnt );	
    	}
    
    	protected boolean scaleGenerally() throws Exception {
    
        	int h = img.getDimension().height;
    		int w = img.getDimension().width;
    		MagickProcessing mp = new MagickProcessing();
    		if( h > w ){
    			if ( !mp.rotateANDscale( "1607x", imageOrigin, tmpImg )) return false;
    			img = getImage( tmpImg );
    			h = img.getDimension().height;
    			w = img.getDimension().width;
    			if( h < height ){
    				if( !mp.rotateANDscale( "x1205", imageOrigin, tmpImg )) return false;
    				img = getImage( tmpImg );
    				h = img.getDimension().height;
    				w = img.getDimension().width;
    			}
    			if( !mp.crop( new Rectangle( ( w - width ) / 2, 0, 1607, 1205 ), tmpImg, tmpImg )) return false;
    		} else {
    			if( !mp.scaleImage( "1607x", imageOrigin, tmpImg ) ) return false;
    			img = getImage( tmpImg );
    			h = img.getDimension().height;
    			w = img.getDimension().width;
    			if( h < height ){
    				if( !mp.scaleImage( "x1205", imageOrigin, tmpImg ) ) return false;
    				if( !mp.crop( new Rectangle( ( w - width ) / 2, 0, 1607, 1205 ), tmpImg, tmpImg ) ) return false;
    			} else if( h > height ){
    				if( !mp.crop( new Rectangle( 0, (int)( h - height ) / 2, width, height  ), tmpImg, tmpImg )) return false;
    			}
    		}
    		return true;
    	}
    }

    постановка задачи - нужен метод для вращения изображений

    Запостил: guest, 04 Марта 2009

    Комментарии (2) RSS

    • Капитан Очевидность:
      и че? может в следующий раз скинешь линку где можно скачать твой говнопроект?
      Ответить
    • страйкер:
      и? за что бить?
      Ответить

    Добавить комментарий