Я пытаюсь загрузить изображение в мой NSImageView / NSScrollView и отобразить его в фактическом размере, но изображение таинственным образом заканчивается отображением примерно в половинном размере. Сначала я подумал, что его можно уменьшить, чтобы он соответствовал некоторым ограничениям кадра и т. Д., Но вскоре понял, что это не может быть правильным, потому что если я физически увеличу размер изображения (в программе редактирования изображений), а затем загрузлю его Опять же, я обнаружил, что могу предположительно загружать / отображать изображения настолько большого размера, насколько захочу.
Фактический размер рассматриваемого изображения составляет всего 2505 x 930, что, я думаю, не является проблемой, поскольку я могу удвоить и увеличить его в четыре раза без каких-либо явных проблем (за исключением того, что все они уменьшены примерно на 50). % при отображении). Соответствующая часть моего очень простого кода:
- (IBAction)openSourceImage:(NSString*)aFilepath
{
// obtain image filepath passed from 'chooseFile'...
NSImage *theImage = [[NSImage alloc] initWithContentsOfFile:aFilepath];
if (theImage)
{
[theImageView setImage:theImage];
// resize imageView to fit image; causes the surrounding NSScrollView to adjust its scrollbars appropriately...
[theImageView setFrame:
NSMakeRect([theImageView frame].origin.x, [theImageView frame].origin.y, [theImage size].width, [theImage size].height)];
[theImageView scrollRectToVisible:
NSMakeRect([theImageView frame].origin.x, [theImageView frame].origin.y + [theImageView frame].size.height,1,1)];
[theImage release]; // we're done with 'theImage' we allocated, so release it
// display the window title from the filepath...
NSString *aFilename = [aFilepath lastPathComponent];
[[theImageView window] setTitle:aFilename];
}
}
Может кто-нибудь сказать, пожалуйста, где я не так, и как отображать изображения в реальном размере?
Решение: Ладно, поэтому вызов 'size' приводит к отображению слишком маленького изображения, с которым можно работать, а вызовы 'pxHigh / pixWide' приводит к увеличению изображения неопределенного масштаба ...
В моем тестовом приложении используется пара «перекрестий», управляемых ползунком, для построения координат объектов на изображении (например, на фотографии или карте). По чистой случайности я случайно заметил, что в то время как загруженное изображение отображается только с долей его фактического размера, координаты x, y DID соответствуют реальной жизни (что составляет около 70 пикселей / дюйм). Пойди разберись с этим ...
Использование:
[theImage setSize:NSMakeSize(imageSize.width * 4, imageSize.height * 4)];
Теперь я могу загрузить изображение при ИЗВЕСТНОМ увеличении и уменьшить мои построенные измерения x, y на тот же коэффициент. Я также добавил метод NSAffineTransform, чтобы позволить мне увеличивать / уменьшать для лучшего размера просмотра.
Уф! Это было непросто для кого-то на моем довольно начинающем уровне, и я до сих пор не понимаю причину первоначальной проблемы с отображением, но я думаю, что конечный результат - это все, что имеет значение. Еще раз спасибо вам обоим: -)