Start with two byte arrays generated from random strings of lengths l1 and l2 (fwiw, l1 and l2 are primes)
What do you mean with "byte arrays generated from random strings? Byte arrays are octet strings. Are the byte arrays themselves fully random if the strings are text based strings?
The aim by this point is to have a key which is based on the password and longer than the data being encrypted which can then be used to quickly encrypt and decrypt the files.
That would require that l1 * l2 is at least as long as the data, but I don't see any description on how you've made sure of this.
So the question is, how secure does this all sound?
It sounds like a badly constructed one-time-pad scheme. The octet strings are still repeated and XOR'ed together, and I don't this this is secure. If somebody guesses the length of the input they might be able to reverse the operation. But that's not the main issue, so it is kind of irrelevant.
I suppose it'd be easy to get the generated key if you passed a large file of zeros and were able to examine the output but lets assume a hypothetical attacker only had access to a set of encrypted files (let's say JPEGs).
The problem here is what you're going to do with the two random strings, as they are required for decryption. Are you going to store these with each file? If you do and an adversary finds the random strings, the original file and the encrypted file then then can directly compute the password. The only thing that separates the sequence of passwords is the XOR of the original image with the third byte array after all.
Even if the original file and password aren't known then the adversary can still calculate the third array before the password has been applied. If the adversary then XOR's it with the encrypted file then they would retrieve the original file encrypted with the repeated password. That means you've now accomplished the many-time pad that you were trying to avoid.
If you are able to store the random strings securely then you might as well have used a symmetric key and performed symmetric encryption, e.g. AES-CTR or AES-GCM.
If you need password based encryption then I would at least use a standard that describes it: PKCS #5: Password-Based Cryptography Specification Version 2.1. This uses a Password Based Key Derivation Function called PBKDF2 to securely derive a secret, which you can use to encrypt your files. Note that image files are just binary files like any other files; you don't need an image specific algorithm.