Uİİmage: yeniden Boyutlandırma, Kırpma sonra
Kelimenin tam anlamıyla gün için bu bir yüzüm şimdi dayak oldum ve vahiy kenarında haklı olduğumu sürekli hissediyorum rağmen, ben sadece benim hedefe ulaşmak olamaz.
Düşündüm, ileride zaman içinde kavramsal aşamadan tasarımım, bu önemsiz bir konu için kapmak bir görüntüden iPhone kamera veya kütüphane, ölçek için belirtilen yükseklik, kullanarak bir fonksiyon eşittirYönü DoldurunUİİmageView (tamamen kod) seçeneğini ve sonraürün kapalıher şey geçti bir CGRect sığmadı.
Kamera veya kitaplıktan orijinal görüntü almak, önemsiz. Diğer iki adımı olduğunu kanıtladı ne kadar şok oldum.
Ekteki görüntü elde etmeye çalışıyorum ne olduğunu gösterir. Birisi elimi tutmak için yeterince nazik olabilir misiniz? Bulduğum her kod örneği, şu ana kadar resmi şut, ters, berbat görünüyorsun, sınırları çizmek, ya da aksi takdirde sadece düzgün çalışmıyor gibi görünüyor.
CEVAP
Bir kez tırmandı, ve her bir son ürün o zaman uyan, aynı şey benim durumumda, boyut almaya genişliği gerisini uyum için gerekli. (Yatay çalışıyorum, bu yüzden portre modunda herhangi bir eksiklik fark etmiş olabilir.) Burada benim kanunum - Uİİmage bir categeory bir parçası. Şifremi hedef boyutu her zaman cihazın tam ekran boyutu ayarlanır.
@implementation UIImage (Extras)
#pragma mark -
#pragma mark Scale and crop image
- (UIImage*)imageByScalingAndCroppingForSize:(CGSize)targetSize
{
UIImage *sourceImage = self;
UIImage *newImage = nil;
CGSize imageSize = sourceImage.size;
CGFloat width = imageSize.width;
CGFloat height = imageSize.height;
CGFloat targetWidth = targetSize.width;
CGFloat targetHeight = targetSize.height;
CGFloat scaleFactor = 0.0;
CGFloat scaledWidth = targetWidth;
CGFloat scaledHeight = targetHeight;
CGPoint thumbnailPoint = CGPointMake(0.0,0.0);
if (CGSizeEqualToSize(imageSize, targetSize) == NO)
{
CGFloat widthFactor = targetWidth / width;
CGFloat heightFactor = targetHeight / height;
if (widthFactor > heightFactor)
{
scaleFactor = widthFactor; // scale to fit height
}
else
{
scaleFactor = heightFactor; // scale to fit width
}
scaledWidth = width * scaleFactor;
scaledHeight = height * scaleFactor;
// center the image
if (widthFactor > heightFactor)
{
thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5;
}
else
{
if (widthFactor < heightFactor)
{
thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5;
}
}
}
UIGraphicsBeginImageContext(targetSize); // this will crop
CGRect thumbnailRect = CGRectZero;
thumbnailRect.origin = thumbnailPoint;
thumbnailRect.size.width = scaledWidth;
thumbnailRect.size.height = scaledHeight;
[sourceImage drawInRect:thumbnailRect];
newImage = UIGraphicsGetImageFromCurrentImageContext();
if(newImage == nil)
{
NSLog(@"could not scale image");
}
//pop the context to get back to the default
UIGraphicsEndImageContext();
return newImage;
}
/Ölçekleme, yeniden boyutlandırma sonr...
JavaScript/JQuery: (pencere)$.boyutlan...
Nasıl yeniden yükleme yapabilirim .bun...
Nasıl otomatik olarak bir sayfayı yeni...
Yeniden boyutlandırma iframe yüksekliğ...