سؤال

أريد أساسا إنشاء صورة مجعد تلقائيا من مجموعة من الصور المصدر، ثم قم بحفظ ذلك لألبوم صور المستخدم. أنا لا أحصل على أي نجاح رسم حفنة من Uiimage الصغيرة في Uiimage كبيرة واحدة. ما هي أفضل طريقة لإنجاز هذا؟ حاليا أنا أستخدم uigraphicsbeginimagecontext () و [uiimage drawatpoint]، إلخ. كل ما أقاربه مع وجود مربع أسود 512x512. كيف يجب أن أفعل هذا؟ أنا أتطلع إلى CGLAYER، وما إلى ذلك يبدو أن هناك الكثير من الخيارات ولكن لا شيء يعمل بسهولة بشكل خاص.

اسمحوا لي في الواقع وضع التعليمات البرمجية في:

CGSize size = CGSizeMake(512, 512);
UIGraphicsBeginImageContext(size);
UIGraphicsPushContext(UIGraphicsGetCurrentContext());
for (int i = 0; i < 4; i++)
{
    for (int j = 0; j < 4; j++)
    {
        UIImage *image = [self getImageAt:i:j];
        [image drawAtPoint:CGPointMake(i*128,j*128)];
    }
}
UIGraphicsPopContext();
UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(result, nil, nil, nil);

يجب أن ألاحظ أنه في الواقع ما ورد أعلاه هو ليس ماذا يحدث في التعليمات البرمجية الخاصة بي بالضبط. ما يحدث حقا هو أنني أسمي كل سطر من قبل و بما في ذلك إلى uigraphicspushcontext، ثم في مؤقت الرسوم المتحركة، أقدم ببطء الرسم والرسم إلى السياق. بعد ذلك، بعد كل شيء قمت بإنشاء كل شيء من uigraphicspopcontext فصاعدا.

هل كانت مفيدة؟

المحلول 2

للقيام بالضبط ما أردت القيام به ...

اجعل Gleview الخاص بك كبيرة مثل الشيء الكلي الذي تريده. تأكد أيضا بالتأكيد Glortho و Viewport الخاص بك لها الحجم المناسب. ثم فقط ارسم كل ما تريد أينما تريد، وأخذ لقطة من OpenGL واحدة. فأنت لا داعي للقلق بشأن الجمع بين uiimage واحد على تمرير OpenGL متعددة، وهذا ليس شك في ما كان يسبب مشكلتي.

نصائح أخرى

أوه، ثم يمكنك فقط حفظ عرض Onscreen بعد أن تم تقديمه على الشاشة:

 UIGraphicsBeginImageContext(myBigView.bounds.size);
    [view drawRect:myBigView.bounds];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

هل تقوم بتخزينها مرة أخرى إلى صورة؟

UIImage *myBigImage = UIGraphicsGetImageFromCurrentImageContext();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top