merhaba arkadaşlar. öncellikle konuyu okuduğunuz için teşekkür ediyorum.

http://codecanyon.stbeets.nl/ adresindeki scripti satın aldım. fakat resimi yüklüyorum resmin kesileceği konumu ayarlıyorum fakat onayladıktan sonra resmin kalitesinde ciddi bir düşüş oluyor. (verdiğim demo adreste de herhangi bir resim yükledikten sonra ve onaylayınca kalitesinin düştüğünü göreceksiniz..) bu scripti daha önce kullanmış olan veya ücretli & ücretsiz yardımcı olabilecek arkadaş var mı? ya da bunun gibi önerdiğiniz başka bir script var mı?

resmin onaylandıktan sonra yapılan işlemlerin kodlarını aşağıda paylaşıyorum. bir terslik mi var anlamadım doğrusu. yardımcı olan arkadaşlara teşekkürlerimi sunuyorum.

		imageCrop: function() {
			var _self				= this;
			var element				= _self.element;
			var image				= _self.image;
			var input				= _self.input;
			var options				= _self.options;
			
			var factor				= (options.width != $(element).outerWidth()) ? options.width / $(element).outerWidth() : 1;
			
			var finalWidth, finalHeight, finalTop, finalLeft, imageWidth, imageHeight, imageOriginalWidth, imageOriginalHeight;
			
			finalWidth				= options.width;
			finalHeight				= options.height;
			
			finalTop				= parseInt(Math.round(parseInt($(image).css('top')) * factor))
			finalLeft				= parseInt(Math.round(parseInt($(image).css('left')) * factor))
			imageWidth				= parseInt(Math.round($(image).width() * factor));
			imageHeight				= parseInt(Math.round($(image).height() * factor));
			imageOriginalWidth		= $(image).data('width');
			imageOriginalHeight		= $(image).data('height');
			
			
			
			finalTop				= finalTop || 0;
			finalLeft				= finalLeft || 0;
			
			var obj					= {name: $(image).attr('name'), imageOriginalWidth: imageOriginalWidth, imageOriginalHeight: imageOriginalHeight, imageWidth: imageWidth, imageHeight: imageHeight, width: finalWidth, height: finalHeight, left: finalLeft, top: finalTop}

			$(element).find('.tools').children().toggle();
			$(element).find('.tools').append($(_self.button.saving));
			
			if (options.canvas == true) {
				
	            var canvas          = $('<canvas class="final" id="canvas_' + $(input).attr('name') + '" width="' + finalWidth + '" height="' + finalHeight + '" style="position:absolute; top: 0; bottom: 0; left: 0; right: 0; z-index:100; width: 100%; height: 100%;"></canvas>');
	            
	            $(element).append(canvas);
	            
	            var canvasContext   = $(canvas)[0].getContext('2d');
	            var imageObj        = new Image();

	            //canvasContext.fillStyle = "rgba(255, 255, 255, 0)";
	            //canvasContext.clearRect(0,0,finalWidth,finalHeight);
	            
	            imageObj.onload = function() {
	            	
	            	
	                var canvasTmp			= $('<canvas width="' + imageWidth + '" height="' + imageHeight + '"></canvas>');
	                var canvasTmpContext    = $(canvasTmp)[0].getContext('2d');
	                var tmpImage			= $('<img src="" />');

	                //canvasTmpContext.fillStyle = "rgba(255, 255, 255, 0)";
	                //canvasTmpContext.clearRect(0,0,imageWidth,imageHeight);
	                canvasTmpContext.drawImage(imageObj, 0, 0, imageWidth, imageHeight);
	                //$(element).append(canvasTmp);
	                var tmpObj				= new Image();
	                tmpObj.onload = function() {
	                	
	                	if (options.canvasImageOnly == true) {
	                		var _imageWidth		= imageWidth;
	                		var _imageHeight	= imageHeight;
	                		if (finalLeft < 0) {
	                			_imageWidth		+= finalLeft;
	                		} else if (finalLeft + imageWidth > finalWidth) {
	                			_imageWidth		= finalWidth - finalLeft
	                		}
	                		if (finalTop  < 0) {
	                			_imageHeight	+= finalTop;
	                		} else if (finalTop + imageHeight > finalHeight) {
	                			_imageHeight	= finalHeight - finalTop
	                		}
	                		
	                		var canvasImageOnly			= $('<canvas width="' + _imageWidth + '" height="' + _imageHeight + '"></canvas>');
	    	                var canvasImageOnlyContext  = $(canvasImageOnly)[0].getContext('2d');
	    	                canvasImageOnlyContext.drawImage(tmpObj, ((finalLeft < 0) ? finalLeft : 0), ((finalTop < 0) ? finalTop : 0), imageWidth, imageHeight);
	    	                
	                	}
		                	
	                	if (imageWidth < finalWidth || imageHeight < finalHeight) {
	                		canvasContext.drawImage(tmpObj, finalLeft, finalTop, imageWidth, imageHeight);
	                	} else {
	                	   	canvasContext.drawImage(tmpObj, finalLeft*-1, finalTop*-1, finalWidth, finalHeight, 0,0,finalWidth, finalHeight);
	                	}
	                	
	                	
	                	var dataUrl		= (options.canvasImageOnly == true) ? $(canvasImageOnly)[0].toDataURL(image.data('mime')) : $(canvas)[0].toDataURL(image.data('mime'))
	                	
	                			
	                	if (options.save == false) {
	                		
	                		$(element).find('.tools .saving').remove();
							$(element).find('.tools').children().toggle();
	                		
	                		if (_self.options.onSave) _self.options.onSave.call(_self,$.extend(obj, options.data, {data: dataUrl}));
	        				_self.imageFinal();
	                		
	                	} else if (options.ajax == true) {
	                		
	                		_self._ajax($.extend({data: dataUrl}, obj));
	                		
	                	} else {
	                		
	                		var json		= JSON.stringify($.extend({data: dataUrl},obj));
	        				$(input).after($('<input type="text" name="' + $(input).attr('name') + '_values" class="final" />').val(json));
	        				
	        				$(input).data('required',$(input).prop('required'));
	        				$(input).prop('required',false);
	        				$(input).wrap('<form>').parent('form').trigger('reset');
	        				$(input).unwrap();
	        				
	        				$(element).find('.tools .saving').remove();
							$(element).find('.tools').children().toggle();
	        				
	        				_self.imageFinal();
	                	}
	                	
	                }
	                tmpObj.src			= $(canvasTmp)[0].toDataURL(image.data('mime'));
	                

	            };
	            imageObj.src = $(image).attr('src');
	            
	            if (options.saveOriginal === true) {
	            	//console.log($(image).attr('src'));
	            	obj			= $.extend({original: $(image).attr('src')}, obj);
	            }
	            
			} else {
				if (options.ajax == true) {
					
					_self._ajax($.extend({data: $(image).attr('src'),saveOriginal: options.saveOriginal}, obj));
					
				} else {
					var finalImage		= $(element).find('.cropWrapper').clone();
					$(finalImage).addClass('final').show().unbind().children().unbind()
					$(element).append($(finalImage));

					_self.imageFinal();
					
					var json		= JSON.stringify(obj);
					$(input).after($('<input type="text" name="' + $(input).attr('name') + '_values" class="final" />').val(json));
				}
			}
		},